自动布局注意点

Auto Layout 的布局是从外到内的,即从屏幕尺寸开始布局,一直布局到最里面的细节元素,我们的目光自然地落在了 viewDidLayoutSubviews 和 viewDidAppear 上了:
1.viewDidLayoutSubviews 时当前视图已经把子元素布局完毕,frame 已经形成
2.viewDidAppear 时,渲染系统把当前视图加入父视图中,显示在屏幕上


注意点:
在自定义控件的初始化方法里约束子视图时,是得不到正确的位置的,因为这个时候自定义控件还没有addSubView,frame没有生效,所以这个时候自动布局是错误的。
解决方法:
自定义控件也用约束布局,那么在自定义控件约束写好后,子视图的布局也就会正确生效。


约束是自外向内的,自定义控件时,控件内部的视图如果使用约束的,外部必须用约束,否则控件内部得不到正确的frame,约束就会错乱。相反,控件内部的子视图如果是frame布局,外部则可以用frame和约束。

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

相关阅读更多精彩内容

友情链接更多精彩内容