iOS系统由10版本升级11后,无意间跑一些老代码时发现有些界面的适配出现了错位。

将self.navigationController.navigationBar.translucent = NO;放在控制器生命周期的viewWillAppear中处理即可

解决原因猜想

这个问题是发现在11.0.3版本上的,之前较低的版本并没有这个问题,所以应该是苹果在新版本中更改了控制器生命周期中一些方法的具体工作内容,因为导航栏是在Appdelegate中生成的,所以在控制器中本身是已经存在的,对于一个已经存在的对象修改其外表属性发现没有效果,结果可能就是这个对象还没有进入渲染和展示,进一步推断,苹果在新版本中将viewDidLoad里部分负责渲染和展示的工作移动到了下一个生命周期。即:viewWillAppear。

原文http://www.cocoachina.com/ios/20171113/21146.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,024评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,050评论 25 709
  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 10,087评论 0 12
  • 感冒后的大姨妈,让人痛苦得喘不过气。于是想分享一些有趣的诗儿来让自己舒心一些。 很多很多年前,苏轼与苏小妹外出。苏...
    賤賤小姐阅读 1,252评论 0 0
  • 倘若 靖江边上看风景 奈何风景依旧 是否已倦 没你的风景 倘若 有你相伴天下 海誓山盟 若与天下为敌 我有何惧天下...
    小森有礼阅读 525评论 0 0

友情链接更多精彩内容