viewDidLayoutSubviews
来源:互联网 发布:安卓翻墙哪个软件好 编辑:程序博客网 时间:2024/05/19 02:28
由于种种原因,最近才开始真正在新项目中使用autolayout,使用过程中虽说是比较顺畅,但是也遇到了一些麻烦,比如:
我使用的XIB默认是4寸屏幕,我再XIB中增加一个viewA,宽度为320,约束为SuperView等宽。
然后我用4寸模拟器,代码跑起来,在ViewDidload中取出viewA的宽度,发现宽度为320,SuperView(self.view)的宽度也为320.
这个结果没有错误。
但是我用5.5寸的模拟器,代码跑起来,在ViewDidLoad取出viewA的宽度发现还是320,SuperView(self.view)的宽度也为320.
此时就不对了
这会导致在ViewDidLoad中初始化一些控件时,导致这些控件的frame的大小是在XIB默认的大小,而不是我们增加约束后希望的大小。
笔者这个问题纠结了很久也百度Google了很久,也不知道是关键字没有正确还是什么原因,寻求无果,最后还是请教一个大神才豁然开朗。
原来在iOS5.0开始就有另外一个生命周期函数ViewDidLayoutSubViews这个方法基本可以代替ViewDidload使用,只不过差别在于前者是约束后,后者是约束前。
当让聪明的读者肯定会想到有Did肯定也会有Will,即ViewWillLayoutSubViews.
希望本片文章可以帮到大家!
0 0
- viewDidLayoutSubviews
- viewDidLayoutSubviews
- viewDidLayoutSubviews
- viewWillLayoutSubviews viewDidLayoutSubviews
- viewWillLayoutSubviews viewDidLayoutSubviews viewWillAppear
- viewDidLayoutSubviews 与 layoutSubviews 调用顺序
- viewWillLayoutSubviews()、viewDidLayoutSubviews()、AutoLayout执行顺序
- When Should You Override viewDidLayoutSubviews?
- Auto Layout still required after sending -viewDidLayoutSubviews to the view controller. 终极解决方法
- iOS键盘弹起,上移视图,和其它的方法大同小异,只不过我在viewDidLayoutSubviews 中写的改变frame方法,这样就不用监听键盘什么的了
- 永久设置网络端口
- iOS 推送小结
- 10个使用Java最广泛的现实领域
- 嵌入式Web服务器BOA和CGI编程开发
- 特征脸(Eigenface)理论基础-PCA(主成分分析法)
- viewDidLayoutSubviews
- [leetcode 104] Maximum Depth of Binary Tree
- Python yield 使用浅析
- tomcat安装
- 复习一下:算法复杂度
- 黑马程序员——java基础——反射
- 李彦宏
- AZURE-百万像素定焦镜头
- c++基础