viewWillTransitionToSize 返回 iPhone 12 pro max 的错误尺寸 [重复]

Posted

技术标签:

【中文标题】viewWillTransitionToSize 返回 iPhone 12 pro max 的错误尺寸 [重复]【英文标题】:viewWillTransitionToSize returns wrong size for iPhone 12 pro max [duplicate] 【发布时间】:2021-04-28 08:36:12 【问题描述】:

今天发现了一个bug。

ViewController 中的

viewWillTransitionToSize 方法为 iPhone 12 pro max 设备返回错误的尺寸。但是对于模拟器,大小是正确的。我该如何解决?有什么想法吗?

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator 
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
 
    NSLog(@"ww hh %f %f", size.width, size.height);
    

iphone 12 pro max 设备的结果:ww hh 812.000000 375.000000 不正确

iphone 12 pro max 模拟器的结果:ww hh 926.000000 428.000000

iphone 12 最大屏幕尺寸(以像素为单位)为 2778 x 1284 除以 3 我们有 = 926 x 428 点

xCode 12.5、ios 14.5

【问题讨论】:

【参考方案1】:

我知道是怎么回事了。 如果在手机设置中屏幕上有放大视图(设置 - 显示 - 显示缩放 - 缩放),则屏幕分辨率会以点为单位发生变化。

犯罪解决了! ))

【讨论】:

以上是关于viewWillTransitionToSize 返回 iPhone 12 pro max 的错误尺寸 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

viewWillTransitionToSize:withTransitionCoordinator: 未调用

为啥 `viewWillTransitionToSize` 中检索 SafeAreaInsets 的逻辑略有错误?

ViewWillTransitionToSize 在 Swift 3 中出现故障?

viewWillTransitionToSize 返回 iPhone 12 pro max 的错误尺寸 [重复]

viewWillTransitionToSize:withTransitionCoordinator: 和 layoutSubviews: 之间的交互

Swift viewWillTransitionToSize 不使用分屏调用