草庐IT

ios - viewWillTransitionToSize :withTransitionCoordinator return wrong size in simulator

coder 2023-09-29 原文

您好,我正在使用这段代码来支持 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];
}

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

谢谢

最佳答案

我得到了不同设备模拟器的正确尺寸,但在横向模式下 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
}

关于ios - viewWillTransitionToSize :withTransitionCoordinator return wrong size in simulator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096085/

有关ios - viewWillTransitionToSize :withTransitionCoordinator return wrong size in simulator的更多相关文章

随机推荐