UIImageView宽度和UIScreen宽度

时间:2016-05-13 05:56:15

标签: ios swift uiimageview uiimage

这是我目前的情况,我有一个全宽UIImageView,当使用此self.feedUiView.frame.size.width得到宽度时,它给出584.0但是当我使用此UIScreen.mainScreen().bounds.size.width得到设备屏幕的宽度时,它给了我375.0 。为什么图像视图与屏幕设备不一样,尽管图像视图在屏幕上完全拉伸。

谢谢!

5 个答案:

答案 0 :(得分:0)

使用autolayout。从superview设置feedUiView前导和尾随约束。

答案 1 :(得分:0)

确保您已设置适当的约束。

你应该在viewDidAppear中计算出来,因为它在视图出现后被调用。

Viewdidload在出现之前被调用,因此它具有在界面构建器中给出的基本宽度。

然后它在didload期间执行约束并根据约束调整大小,因此它可以从viewdidAppear知道它的最终大小,因为在viewdidload中它只是计算约束。

希望这会有所帮助:)

答案 2 :(得分:0)

这是因为在故事板中构建的视图会在viewDidLayoutSubviews之前保留其框架。您应该在viewDidLayoutSubviewsviewDidAppear

中查看此内容

答案 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尺寸添加了启动图像,问题就消失了。

- 好运。