2014-12-03 36 views
5

当我放置视图的帧大小(0.0,0.0,320.0,435.0)应用自动布局它看起来在iphone 5(4英寸)正确,当我在iphone 4s它看起来是正确的,由于自动布局,但是当我在运行时执行后获取其帧的值时,它出现"(0.0,0.0,320.0,435.0)"我无法获得在iphone 4s中应用自动布局后有变化的大小? 我想获得大小,因为使用该大小我可以通过编程方式设置创建自定义视图的大小。UIView使用自动布局调整大小,但在运行时获取其框架大小不正确ios

+2

在什么时候,你想读的框架?这可能是因为在印刷它的框架时,这个观点还没有制定出来。 – liamnichols 2014-12-03 12:05:16

+0

@liamnichols我想在视图中加载,因为我想根据获得的框架大小来设置自定义视图的大小。 – 2014-12-03 12:06:38

+0

尝试添加代码在视图中会出现..并检查它是否工作 – 2014-12-03 12:34:33

回答

8

我认为自动布局在您调用此窗口时没有时间布置您的视图。自动布局在viewDidLoad被调用的时候没有发生过,因为它在视图加载之后才被调用,并且只有在视图被放置到视图控制器的视图层次结构中并最终被布置(在视图的layoutSubviews方法中)之后才会调用它。

试试这个代码

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

你的“得到真正的尺寸代码”,插入下面的代码:之前

yourView.setNeedsLayout() 
yourView.layoutIfNeeded() 
+0

它适用于我 – 2015-06-18 06:51:37

相关问题