这是我目前的情况,我有一个全宽UIImageView,当使用此self.feedUiView.frame.size.width
得到宽度时,它给出584.0但是当我使用此UIScreen.mainScreen().bounds.size.width
得到设备屏幕的宽度时,它给了我375.0 。为什么图像视图与屏幕设备不一样,尽管图像视图在屏幕上完全拉伸。
谢谢!
答案 0 :(得分:0)
使用autolayout。从superview设置feedUiView前导和尾随约束。
答案 1 :(得分:0)
确保您已设置适当的约束。
你应该在viewDidAppear
中计算出来,因为它在视图出现后被调用。
Viewdidload在出现之前被调用,因此它具有在界面构建器中给出的基本宽度。
然后它在didload期间执行约束并根据约束调整大小,因此它可以从viewdidAppear
知道它的最终大小,因为在viewdidload
中它只是计算约束。
希望这会有所帮助:)
答案 2 :(得分:0)
这是因为在故事板中构建的视图会在viewDidLayoutSubviews
之前保留其框架。您应该在viewDidLayoutSubviews
或viewDidAppear
。
答案 3 :(得分:0)
使用自动布局和基于约束的布局,视图可以继续调整其帧。 viewWillLayoutSubviews& viewDidLayoutSubviews是检查和调整布局的正确位置。
可以在此检查viewDidlayoutSubviews的文档 - https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/index.html#//apple_ref/occ/instm/UIViewController/viewDidLayoutSubviews
答案 4 :(得分:0)
一旦我遇到同样的问题。因为我使用了启动图像,并且只为5S和6S设置了启动图像,而不是6P尺寸。一旦我为6P尺寸添加了启动图像,问题就消失了。
- 好运。