【问题标题】:How to get width of the main UIView in landscape mode?如何在横向模式下获取主 UIView 的宽度?
【发布时间】:2012-12-04 09:10:12
【问题描述】:

当我使用这段代码时:

- (void)viewDidLoad
{
    [super viewDidLoad];
    CGFloat mainViewWidth = self.view.bounds.size.width;
    NSLog(@"%f", mainViewWidth);
}

我在模拟器中得到了结果:480

当我在 iPhone 4 上启动应用程序时,我得到了 320 的结果?

我是不是做错了什么?

【问题讨论】:

  • 使用框架代替边界
  • 我试过了,结果还是不一样。
  • 您应该在 viewWillAppear 中使用这段代码,因为每当您旋转调用时都会出现。或者,如果您特别想要登录特定方向,那么只需使用 bool 值...我希望你得到它。

标签: ios uiview uiviewcontroller landscape


【解决方案1】:

viewWillAppear 中执行相同操作。

-(void)viewWillAppear:(BOOL)animated{
    CGFloat mainViewWidth = self.view.bounds.size.width;
    NSLog(@"%f", mainViewWidth);
}

看看你是否得到了正确的值。ViewDidLoad 在视图完全绘制之前被调用。访问UIView size 属性会为您提供不可预测的值。

【讨论】:

    【解决方案2】:

    斯威夫特 3.1:

    let width = yourView.bounds.width
    

    【讨论】:

      【解决方案3】:

      试试这个

      -(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
      {
          CGFloat width = CGRectGetWidth(self.view.bounds);
      }
      

      【讨论】:

        猜你喜欢
        • 2014-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多