我做一个项目使用AutoLayout+SizeClasses布局,然后某些子视图在ViewDidLoad中生成,调整子视图的长宽等于父视图。例如:给UIScrollView中添加多个UIImageView做图片浏览。想要做成里面的UIImageView高度等于UIScrollView的高度,在ViewDidLoad中设置UIImageView的frame。但发现显示出来的不是我想要的效果,NSLog一下发现ViewDidLoad和ViewDidAppear两个方法中的UIScrollView的frame属性是不一样的????怎么办。。。。
2 回答
Helenr
TA贡献1780条经验 获得超4个赞
setFrame的方法一定要放在viewDidAppear里,在viewDidLoad里是没有效果的。因为viewDidLoad的时候,view还没有加载完成。
江户川乱折腾
TA贡献1851条经验 获得超5个赞
使用AutoLayout+SizeClasses的模式开发,在viewDidLoad中视图的最终frame是没有确定的,你可以试试在ViewDidLoad分别调用[selflayoutIfNeeded]和[ScrollViewlayoutIfNeeded]然后看看frame,如果是只是适配iPhone竖屏,我建议你不要用SizeClasses
添加回答
举报
0/150
提交
取消
