gpt4 book ai didi

ios - 方向似乎与尺寸冲突

转载 作者:行者123 更新时间:2023-11-29 04:12:50 25 4
gpt4 key购买 nike

if(UIInterfaceOrientationIsPortrait(self.interfaceOrientation)) {
NSLog(@"Device is in portrait");
} else if(UIInterfaceOrientationIsLandscape(self.interfaceOrientation)){
NSLog(@"Device is in landscape");
}
NSLog(@"View bounds are %@",NSStringFromCGRect(self.view.bounds));

我从 viewDidLoad 调用此代码,然后从手势识别器调用此代码。在横向模式下,viewDidLoad 的输出为:

2013-01-04 20:44:48.925 293 Calendar[2638:907] Device is in landscape
2013-01-04 20:44:48.926 293 Calendar[2638:907] View bounds are {{0, 0}, {748, 1024}}

当从滑动手势识别器调用时,输出为:

2013-01-04 20:44:58.002 293 Calendar[2638:907] Device is in landscape
2013-01-04 20:44:58.004 293 Calendar[2638:907] View bounds are {{0, 0}, {1024, 748}}

如果设备两次都是横向,为什么尺寸相反?我应该在 viewDidLoad 之外的其他地方查看 View 尺寸吗?那会是什么事件?

我尝试了viewWillAppear,和viewDidLoad一样。我尝试了 viewDidAppear,它与手势识别器中的相同。所以我认为这就是我应该使用的而不是 viewDidLoad 来获得正确的 View 尺寸。正确吗?

最佳答案

在 View Controller 的 View 大小正确调整之前调用viewDidLoad方法。此时 View 的大小显示不正确是正常的。

处理所有这些问题的正确位置是 viewWillLayoutSubviews。由于初始显示或方向更改, View 的大小和方向是最新的。您应该在此处更新未通过某种自动布局正确处理的任何 subview 。

关于ios - 方向似乎与尺寸冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14168065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com