viewdidlayoutsubviews 何时调用 和navigationBar.subviews问题

layoutSubviews在以下情况下会被调用:

 1、init初始化不会触发layoutSubviews 

2、addSubview会触发layoutSubviews 

3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化

工作中遇到一个问题 是关于UINavigationBar  的subviews的问题。我是在viewdidlayoutsubviews 方法里去做了改变我在navBar上自定义的一个view的透明度等于navbar.subviews.firstObject的透明度。

这时候 我发现有些页面改变了,有些页面没改变。

测试打印出  navbar.subviews  在viewDidLoad,viewWillAppper 和 viewdidlayoutsubviews第一次调用的时候都为空  也就是说在viewDidApper之前 navbar.subviews 都是空的。如果某些页面 在viewDidApper及之后 再次触发调用viewdidlayoutsubviews则就可以正确显示。

所以在做某些判断的时候一定要注意 navigationBar.subviews是否为空

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容