【问题标题】:viewWillTransitionToSize:withTransitionCoordinator return wrong size in simulatorviewWillTransitionToSize:withTransitionCoordinator 在模拟器中返回错误的大小
【发布时间】:2014-11-23 14:54:01
【问题描述】:

您好,我正在使用此代码在 iPhone 6 上支持 splitViewController:

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id <UIViewControllerTransitionCoordinator>)coordinator
{
    self.forcedTraitCollection = nil;
    if (size.height == 320.0 || size.width == 320.0)
    {
        self.forcedTraitCollection = nil;
    }
    else
    {
        self.forcedTraitCollection = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassRegular];
    }

    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
}

问题是返回的 Size 是错误的 - 它为所有模拟器返回 CGSize(320,568)。 +n 返回宽度作为高度,反之亦然。

谢谢

【问题讨论】:

  • 你发现问题了吗,我遇到了同样的问题。
  • 这似乎还是个问题。这个雷达非常清楚地描述了我遇到的问题google.com/…

标签: ios ios-simulator xcode6 size-classes


【解决方案1】:

我为不同的设备模拟器获得了正确的尺寸,但在横向模式下 x 和 y 似乎被翻转了。我用这个 hack 来纠正它:

let mainScreen = UIScreen.mainScreen()
let screenSize = mainScreen.applicationFrame // CGRect screen bounds
var width = size.width
if screenSize.width == size.width {
    // size must be wrong or flipped
    width = size.height
}

【讨论】:

    猜你喜欢
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 2019-12-24
    • 2021-10-02
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多