【问题标题】:Setting the correct UIView frame size on alloc/init depending on device orientation根据设备方向在 alloc/init 上设置正确的 UIView 帧大小
【发布时间】:2011-03-06 08:11:55
【问题描述】:

我已将所有视图设置为纵向模式,然后相应地设置自动调整大小掩码,以便在方向更改时自动调整视图大小....但是,对于已经显示的视图,这似乎工作正常。如果我在横向模式下加载任何新视图,我会在加载的视图的框架上获得反转的宽度和高度值。

我是否必须根据每个主视图的方向计算框架大小? 例如,而不是

UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0,0,500, 100)];

我必须这样做:

CGRect frame;
if([UIDevice orientation] == UIDeviceOrientationLandscape){
   frame = CGRectMake(0,0,100,500)
}else{
    frame = CGRectMake(0,0,500,100)
}
UIView* view = [[UIView alloc] initWithFrame:frame];

考虑到加载视图后的自动旋转效果很好,这对我来说似乎有点啰嗦!

您如何管理视图框架?

谢谢

【问题讨论】:

    标签: iphone objective-c ipad uiview uiviewcontroller


    【解决方案1】:

    我使用[[UIScreen mainScreen] applicationFrame]; 管理我的视图框架。

    它在构建通用应用程序时也非常有用,因为您可以使用它来设计可在两种设备上正确显示的视图。

    【讨论】:

      猜你喜欢
      • 2019-01-28
      • 2015-03-19
      • 2014-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-26
      • 1970-01-01
      • 2020-07-25
      相关资源
      最近更新 更多