Q:开发中一般将子控件约束和数据请求都写到ViewDidLoad方法中,有时需要根据请求到的数据调整控件的frame,但这时发现并没有起作用?
A:这是因为我们在ViewDidLoad中设置的约束,要等到ViewDidAppear时View的尺寸才会真正改变。对于这个问题我们可以在layoutSubViews中或者ViewDidLayoutSubviews中设置frame,这时约束已经生效,尺寸真正发生了变化。或者我们还可以在设置完约束之后手动调用layoutIfNeeded方法,让视图立即layout,更新frame。然后就可以拿到约束设置的view的尺寸了。
Masonry与frame
最新推荐文章于 2020-12-25 10:22:25 发布