gpt4 book ai didi

ios7 - ios 8 中的 UIWindow 框架与 Landscape 中的 ios 7 不同

转载 作者:行者123 更新时间:2023-12-04 07:00:47 25 4
gpt4 key购买 nike

我创建了简单的模块,在其中将 subview 添加到 UIWindow。在模拟器 ios 7(Xcode 5.1.1)中,我打印了 self.windows 并得到:

<UIWindow: 0x8db1670; frame = (0 0; 768 1024); autoresize = W+H; gestureRecognizers = <NSArray: 0x8db1a70>; layer = <UIWindowLayer: 0x8db17d0>>

但在 ios8 (Xcode 6 beta 6) 上我得到:
<UIWindow: 0x794320d0; frame = (0 0; 1024 768); gestureRecognizers = <NSArray: 0x79437a80>; layer = <UIWindowLayer: 0x7943c400>>

问题是:为什么框架属性会有所不同?

最佳答案

可能在您的 AppDelegate 中,您像这样初始化 UIWindow

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

在 iOS8 之前,UIScreen 的 bounds 属性返回物理屏幕的边界矩形(即竖屏),但从 iOS8 开始,设备旋转时边界会发生变化 documentation.

如果您想获得物理屏幕的边界矩形,现在可以使用 nativeBounds 代替。

注意:nativeBounds 以像素为单位返回屏幕,但 bounds 以点为单位返回。

关于ios7 - ios 8 中的 UIWindow 框架与 Landscape 中的 ios 7 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25741743/

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