UIView使用自动布局调整大小,但在运行时获取其帧大小不正确

时间:2014-12-03 12:01:32

标签: ios swift autolayout

当我放置应用自动布局的帧大小(0.0,0.0,320.0,435.0)的视图时,它在iphone 5(4英寸)中显示正常,当我在iphone 4s中运行时,由于自动布局而显示正确但是当我获取值时在运行时执行后它的框架出现"(0.0,0.0,320.0,435.0)" 我在iphone 4s中应用自动布局后无法获得更改的尺寸? 我想获得大小,因为使用该大小我可以以编程方式设置自定义视图的大小。

2 个答案:

答案 0 :(得分:16)

在“获取实际大小代码”之前,请插入以下代码:

yourView.setNeedsLayout()
yourView.layoutIfNeeded()

答案 1 :(得分:8)

我认为自动布局没有时间在你调用它时布局你的视图。调用viewDidLoad时没有发生自动布局,因为它是在加载视图之后调用的,只是在视图被放置到视图控制器的视图层次结构中并最终布局后(在视图的layoutSubviews方法中)。 / p>

试试这段代码

        //delegate method
      - (void) viewDidLayoutSubviews
       {
            NSLog(@"height=%f",self.myview.frame.size.height);
       }