为了账号安全,请及时绑定邮箱和手机立即绑定

ViewDidLoad和ViewDidAppear两个方法中的self.view.frame不同?

ViewDidLoad和ViewDidAppear两个方法中的self.view.frame不同?

POPMUISE 2019-04-13 08:37:12
我做一个项目使用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还没有加载完成。
                            
查看完整回答
反对 回复 2019-04-13
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

使用AutoLayout+SizeClasses的模式开发,在viewDidLoad中视图的最终frame是没有确定的,你可以试试在ViewDidLoad分别调用[selflayoutIfNeeded]和[ScrollViewlayoutIfNeeded]然后看看frame,如果是只是适配iPhone竖屏,我建议你不要用SizeClasses
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 359 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号