美文网首页
viewDidLoad 中设置ib frame 无效 的问题

viewDidLoad 中设置ib frame 无效 的问题

作者: 宇轩Simid | 来源:发表于2017-07-11 23:52 被阅读0次

很多人在刚刚学习auto layout的时候总是很困惑,为什么代码修改frame不生效,下面详细的说明一下原因:

不使用auto layout时是可以在viewDidLoad:里设置frame的,一旦开启了auto layout,就要注意,通常在viewDidLoad:中设置frame就不再生效,因为iOS5加入的viewWillLayoutSubviews会在viewDidLoad之后调用,而该函数会在执行的时候去加载该文件对应的xib设置的约束,就是说在viewDidLoad:中设置frame的时机太早了,没有生效就又改成了xib中的样子,而且在viewWillLayoutSubviews中修改frame也是不生效的,那么,如何才能用代码修改布局生效?
方法一:
在viewDidLayoutSubviews中修改frame,这是最简单的方法。
方法二:
选中xib中的约束(蓝色线段,左边栏Constants里的item)像拖动其他控件一样,将其拖动成为IBOutlet的属性或全局变量

相关文章

网友评论

      本文标题:viewDidLoad 中设置ib frame 无效 的问题

      本文链接:https://www.haomeiwen.com/subject/xqsvhxtx.html