如何使用Autolayout从IB访问正确的宽度值

时间:2015-07-21 13:43:18

标签: ios objective-c autolayout interface-builder

我有一些奇怪的问题。

我有一个UIViewController,里面只有一个UIView(我称之为containerView)。 UIView应与UIViewController具有相同的宽度。

所以我将UIViewUIViewController之间的前导和尾随约束设置为0.在运行时一切正常,但是,如何在运行时访问实际宽度?我尝试过:

self.containerView.frame.size.width

但当然框架不能与autolayout一起使用,我的宽度只有600.0f,这是Interface Builder的标准宽度!

我还尝试设置固定的约束宽度,但这也没有意义,因为iPhone的屏幕宽度与iPad的宽度不同。

任何想法我如何在运行时访问UIVIew的宽度。

PS:您可以看到我使用Interface BuilderSize ClassesAutolayout

1 个答案:

答案 0 :(得分:1)

尝试获取$('div.player-container object param')

中的宽度
viewDidLayoutSubviews

由于您的-(void)viewDidLayoutSubviews { NSLog(@"%f", self.containerView.frame.size.width); } 所有屏幕边缘都有0个空格,因此UIView的宽度将与屏幕尺寸相同,因此您可以这样设置:

UIView