1

我需要处理所有 iOS 屏幕比例(3.5 英寸、4 英寸)。我没有使用autolayout,因为我需要iOS5.x 兼容性。

在我的应用程序中,当设备方向改变时,我需要重新组织我的按钮和图标,从纵向切换:

Logo
-
Button 1
Button 2
Button 3

到景观:

       Button 1
Logo   Button 2
       Button 3

由于屏幕比例不同,我需要根据 Button 1 的 Y 位置调整纵向 Logo 的高度,并根据 Button 1 的 X 位置调整横向 Logo 的宽度。

为了提供流畅的动画,我想实现:

  - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)

并启动一个与设备的旋转动画在同一时间轴上运行的动画。问题是我的计算需要“按钮 1”的目标框架(设备旋转后的框架),而我只有其初始状态的框架。

如果我等待初始旋转完成(这是我迄今为止实现的),您会看到应用程序执行旋转然后定位,这对我来说......不满意。

因此,在一个问题中,这将给出:“有没有办法在给定特定设备方向的情况下询问 UIView 的框架?也许故事板......”

它应该可以在某个地方访问,因为 iOS 动画必须计算这些信息才能开始它的动画,对吗?

4

1 回答 1

0

查找屏幕边界的一种方法是执行以下操作:

CGRect screenBounds = [[UIScreen mainScreen] bounds];
于 2013-06-25T07:28:41.783 回答