《九阴真经: iOS黑客攻防秘籍》新书发布,干货满满,快来看看吧!

iOS 安全论坛 - 专注于研究 iOS 安全

 找回密码
 立即注册
查看: 62|回复: 0

13系统状态栏

[复制链接]

4

主题

38

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
发表于 2020-6-22 13:44:05 | 显示全部楼层 |阅读模式
iOS13的beta5版本已经出来了,APP适配也应该提上日程了,本文记录下自己在适配时做的一些工作。
Note:iOS13 UI 更新请放到主线程中
Q:我不想让用户使用DarkMode,可不可以?
A:当然可以,请往下看
在iOS13,为UIViewController和UIView扩展了一个新的API-overrideUserInterfaceStyle,使用方法,官方文档大致是这么说的:
通过设置overrideUserInterfaceStyle属性以使该视图及其子视图具有特定的UIUserInterfaceStyle。但如果想要获取当前的UIUserInterfaceStyle,需要改用traitCollection.userInterfaceStyle。
尽可能使用UIViewController上的overrideUserInterfaceStyle属性。仅在以下时间使用此属性:
  • 在单个视图或小视图层次结构上局部使用特定样式。
  • 您希望在整个UIWindow及其视图控制器和模态弹出的ViewController上使用特定样式,且不希望强制更改整个应用程序具有样式。 (如果您确实希望整个应用程序具有某种样式,请不要使用它,而是在Info.plist中设置UIUserInterfaceStyle键。)
  • 当设置在普通的UIView上时:
  • 此属性仅影响此视图及其子视图的特征。
  • 它不会影响任何视图控制器或其他视图控制器的子视图。
  • 在UIWindow上设置时:
  • 此属性会影响rootViewController,从而影响整个视图控制器和视图层次结构。
  • 它还会影响该window模态出来的界面。
由此可见,overrideUserInterfaceStyle不仅会影响自己,还会影响自己的子视图,换做window就会影响整个window中的所有视图及视图控制器,包括模态跳转出来的视图控制器。
而且,文档中也特别强调了,你可以设置整个应用程序只是用某种样式,具体方法可以通过代码,也可以通过info.plist配置键User Interface Style,对应的Value为Light/Dark。
// 此方法只会影响该window及其所有子视图控制器和子视图,不会影响别的windowif #available(iOS 13.0, *) {    window?.overrideUserInterfaceStyle = .light;}







作者:yuyangkk
链接:https://www.jianshu.com/p/75f34462bd9a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。这是在网海里搜索的,有大神知道怎么搞没,谢谢

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|iOSHacker

GMT+8, 2020-7-4 13:32 , Processed in 0.091712 second(s), 19 queries .

iOS安全论坛

© 2017-2020 iOS Hacker Inc. 京ICP备17074153号-2

快速回复 返回顶部 返回列表