实践随记
项目实践
应用图标
可以通过将一张图片的名称改为icon.png
,并将图片拖拽到项目中,XCode会自动识别并设置为应用图标。但现在我们更推荐去设置项目中Assets.xcassets
文件Appicon中各系统版本需要的图标来设置应用图标。
启动界面
在XCode项目文件中包含LaunchScreen.storyboard
文件出现之前,我们只需要将图片的名字改为Default.png
的格式XCode就会自动将其设为启动界面的图片;但当LaunchScreen.storyboard
文件出现后,我们可以将OC中视图相关的界面设为启动界面,可以使启动界面更多样化和美观。
应用语言匹配
可以在项目文件下的info.plist
中修改Localization native development region
的值,来指定应用使用的语言,但这种方式只能使用一种语言;我们需要根据不同的系统环境来适配语言,可以在项目文件PROJECT->应用名->info->Localizations
下添加应用需要匹配的语言,设置了这个info.plist
文件中的设置将会被覆盖。
设置应用程序名称
程序运行在模拟器或者真机上,显示的应用程序默认和工程名一样。如果想要设置成其他的名字,可以通过info.plist文件来设置:
info.plist文件中添加一个key:Bundle display name,value 填上应用名称
使用自制字体
首先将字体文件包含进工程,然后在info.plist->Fonts provided by application
下添加字体文件名(包含后缀)。
// 设置字体
[UIFont fontWithName:字体名 size:字体大小];
// 查看字体名
[UIFont familyNames];
保存图片
UIImageWriteToSavedPhotosAlbum(<#UIImage * _Nonnull image#>, <#id _Nullable completionTarget#>, <#SEL _Nullable completionSelector#>, <#void * _Nullable contextInfo#>)
状态栏相关
1.隐藏和显示状态栏
(1)只隐藏指定界面的状态栏:
//在指定界面的视图控制器中,重写- (BOOL)prefersStatusBarHidden方法,返回YES:
- (BOOL)prefersStatusBarHidden{
return YES;
}
2.在满足条件的时候隐藏和显示:
第一步:在info.plist文件添加 "View controller-based status bar appearance" ,并且设置为 "NO"
第二步:在代码中合适的位置:
[UIApplication sharedApplication].statusBarHidden = YES; //隐藏
[UIApplication sharedApplication].statusBarHidden = NO; //显示
3.改变样式
1.在info.plist文件中添加: "Status bar style" ,其对应的值为UIStatusBarStyleLightContent/UIStatusBarStyleDefault。前面是白色,后面是黑色
图文混排
// 封装图文混排方法
- (NSAttributedString *)mixImage:(UIImage *)image andText:(NSString *)text
{
// 用富文本实现图文混排
// 将图片转换为文本附件对象
NSTextAttachment * commentAttachment = [[NSTextAttachment alloc] init];
commentAttachment.image = image;
// 将文本附件对象转换为富文本
NSAttributedString * commentAttachAttr = [NSAttributedString attributedStringWithAttachment:commentAttachment];
// 将文字转换为富文本
NSAttributedString * commentCountAttr = [[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:10]}];
// 拼接所有富文本
NSMutableAttributedString * commentAttr = [[NSMutableAttributedString alloc] init];
[commentAttr appendAttributedString:commentAttachAttr];
[commentAttr appendAttributedString:commentCountAttr];
return [commentAttr copy];
}
删除线
NSAttributedString * attrStr =
[[NSAttributedString alloc] initWithString:price
attributes:
@{NSFontAttributeName:[UIFont systemFontOfSize:14],
NSForegroundColorAttributeName:[UIColor redColor],
NSStrikethroughStyleAttributeName:@(NSUnderlineStyleSingle|NSUnderlinePatternSolid),
NSStrikethroughColorAttributeName:[UIColor blueColor]}];
URL Schemes(程序跳转)
- URL Schemes的设置
要实现应用之间的跳转首先需要设置应用的URL Schemes,在target->info->URL Types
下添加一个Types,并设置其中的URL Schemes
,因为Apple对于URL Schemes没有硬性规定,所以一般推荐URL Schemes
的值与Bundle Id
绑定。 - URL Schemes的使用
在应用需要进行APP跳转的位置先将URL Schemes
与需要传递的参数拼接成URL格式:
schemes://参数
注意拼接后URL不能含有汉字或则空格
然后让Application通过URL打开对应的应用:
// 打开程序
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:jumpPath]];
- URL Schemes的接收
在工程的AppDelegate.m中实现系统自带的方法:
// 如果当前程序被其他程序打开,就会调用
// URL就是上一APP传来的参数
// options上一APP的相关信息
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options {
NSLog(@"%@", url);
NSLog(@"%@", options);
_vc.strLabel.text = url.absoluteString;
return YES;
}
参考资料:URL Schemes的使用详解