Iphone 计算给定设备方向的UIView帧

Iphone 计算给定设备方向的UIView帧,iphone,ios,layout,device-orientation,Iphone,Ios,Layout,Device Orientation,我需要处理所有iOS屏幕比例3.5英寸,4英寸。我没有使用自动布局,因为我需要iOS 5.x兼容性 在我的应用程序中,当设备方向改变时,我需要重新组织按钮和图标,从纵向切换: Logo - Button 1 Button 2 Button 3 景观: Button 1 Logo Button 2 Button 3 由于屏幕比例不同,我需要根据按钮1的Y位置调整纵向徽标的高度,并根据按钮1的X位置调整横向徽标的宽度 为了提供平滑的动画,我想实现: - (vo

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

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

Logo
-
Button 1
Button 2
Button 3
景观:

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

为了提供平滑的动画,我想实现:

  - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)
并启动一个动画,该动画将在与设备旋转动画相同的时间线上运行。问题是我需要按钮1的目标帧来计算设备旋转后的帧,而我只有其初始状态的帧

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

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


它应该可以在某个地方访问,因为iOS动画必须计算此信息才能正确启动动画?

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

CGRect screenBounds = [[UIScreen mainScreen] bounds];

您需要使用自动调整大小蒙版…您是否尝试在XIB中自动调整大小?您应该在纵向和横向模式下分别计算位置,然后使用自动调整大小蒙版以适应差异屏幕解决方案是的,我当然使用自动调整大小,但这还不够,因为我必须移动一些元素。我无法使用自动调整大小蒙版实现我想要的效果,我的问题是如何计算给定方向的帧,以便我可以正确地定位元素,使其与设备旋转动画同步