为给定的设备方向计算UIView的框架

时间:2013-06-25 04:40:29

标签: iphone ios layout device-orientation

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

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

Logo
-
Button 1
Button 2
Button 3

到风景:

       Button 1
Logo   Button 2
       Button 3

由于屏幕比例不同,我需要根据按钮1的Y位置调整纵向徽标的高度,并根据按钮1的X位置调整横向徽标的宽度。 / p>

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

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

并启动一个动画,该动画将在与设备的旋转动画相同的时间轴中运行。问题是我需要“按钮1”的目标帧用于我的计算(设备旋转后的帧)并且我只有其初始状态的帧。

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

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

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

1 个答案:

答案 0 :(得分:0)

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

CGRect screenBounds = [[UIScreen mainScreen] bounds];