实践随记

项目实践

应用图标

可以通过将一张图片的名称改为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(程序跳转)

  1. URL Schemes的设置
    要实现应用之间的跳转首先需要设置应用的URL Schemes,在target->info->URL Types下添加一个Types,并设置其中的URL Schemes,因为Apple对于URL Schemes没有硬性规定,所以一般推荐URL Schemes的值与Bundle Id绑定。
  2. URL Schemes的使用
    在应用需要进行APP跳转的位置先将URL Schemes与需要传递的参数拼接成URL格式:

schemes://参数
注意拼接后URL不能含有汉字或则空格

然后让Application通过URL打开对应的应用:

// 打开程序
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:jumpPath]];
  1. 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的使用详解

推荐阅读更多精彩内容