第30月第3天 iOS图标icon自动生成和自定义尺寸

时间:2022-01-18 03:22:21

1.

http://icon.wuruihong.com/

https://www.jianshu.com/p/684751c14735

2.status bar

UIViewControllerBasedStatusBarAppearance = NO时:

UIApplication 的setStatusBarStyle方法生效:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

viewController的preferredStatusBarStyle方法无效:
- (UIStatusBarStyle)preferredStatusBarStyle{
    return UIStatusBarStyleLightContent;
}

UIViewControllerBasedStatusBarAppearance = YES时:

UIApplication 的setStatusBarStyle无效。
viewController的preferredStatusBarStyle方法有效。

https://blog.csdn.net/gaoyp/article/details/17755295

如果你使用了系统的UINavigationController,且它的navigationBar没有被隐藏的话,它的rootController及之后push的controller的preferredStatusBarStyle方法不会被调用(其他两个方法还是会被调用);
UINavigationController会根据自己navigationBar的barStyle,来决定StatusBarStyle的值;

如果你设置了 navagationBarStyle 从Default->Black 或者 self.navigationController.navigationBarHidden = YES;
那preferredStatusBarStyle就会被正常调用了

https://blog.csdn.net/gxp1032901/article/details/41879557

最后发现是因为这次在ViewController中加入了UINavigationController使得导航控制器不会将preferredStatusBarStyle这个方法的调用转给它的子视图,而是由导航控制器本身进行管理,所以如果在包含UINavigationController的ViewController中实现preferredStatusBarStyle方法是无论如何都不会调用的。这种情况我们就需要用另外的方法修改状态栏的颜色了,在导航控制器的navigationBar中有barStyle这个属性,这个属性决定了状态栏文本颜色是黑色还是白色,默认是黑色的(UIBarStyleDefault),如果你想把状态栏文本颜色修改为白色,那么你就需要把barStyle修改为UIBarStyleBlack,导航条默认是浅色的,所以状态栏文本颜色为黑色,如果把导航条的barStyle改为深色,那么状态栏文本颜色就会变为白色,代码如下:

/** 将状态栏文本颜色设置为白色 */
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
/** 将状态栏文本颜色设置为黑色 ,默认就是黑色 */
self.navigationController.navigationBar.barStyle = UIBarStyleDefault;

https://www.jianshu.com/p/1d2e58897daa

https://www.colabug.com/1753279.html