这让我有点困惑。我知道 UIScreen 中关于尺寸屏幕的 2 个属性,例如在这个问题中使用applicationFrame,而这使用bounds。
- applicationFrame - 显示设备的大小减去状态栏。在 iPhone 中制作 NSLog,我得到以下值: (x=0, y=20, height= 460, width = 320)
- bounds - 显示所有尺寸的屏幕。值为: (x=0, y=0, height=480, width=320)
现在,如果我旋转设备(从肖像到 ladscape),这将显示(边界将是相同的值)
- 转到函数:shouldAutorotateToInterfaceOrientation: x= 0 y=20 height= 460 width= 320
- 返回 YES 所以
- 转到函数:didRotateFromInterfaceOrientation: x= 20 y=0 高度= 480 宽度= 300
- 我不知道为什么,但这在shouldAutorotateToInterfaceOrientation中再传递一次并显示: x= 20 y=0 height= 480 width= 300 (这是一个错误吗?)
我想将我的视图调整为这个新大小,但是如果我得到 CGRect,它将在 didRotateFromInterfaceOrientation 中给出正确的大小,并且高度将为宽度,反之亦然。
有没有一种好方法可以在不手动设置此值的情况下漂亮地调整我的视图大小?