我希望能够在我当前的 iPhone 应用程序中处理方向变化。问题是我不希望我的控制器的视图旋转或调整大小。当设备方向改变时,我只想让一个 UI 元素在屏幕上旋转 90 度。
Apple 的相机应用程序就是一个很好的例子——当设备方向改变时,所有的按钮都会旋转,但视图本身不会旋转。
我想我可以调整视图的大小,移动所有元素,然后为按钮设置动画,但我觉得必须有一种更简单的方法来做到这一点。
提前致谢。
您可以使用
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if(interfaceOrientation==UIInterfaceOrientationPortrait || interfaceOrientation==UIInterfaceOrientationPortraitUpsideDown)
{
//Change frames as per orientations
}
else
{
//Change frames as per orientations
}
return NO;
}
并根据方向手动设置要更改的 UI 元素的框架。您可以从此文档Constants
的部分访问所有方向。
编辑:您可以使用 NSNotification 来解决这个问题。
UIApplicationDidChangeStatusBarOrientationNotification
当应用程序用户界面的方向改变时发布。
userInfo 字典包含一个封装 UIInterfaceOrientation 值的 NSNumber 对象(请参阅 UIInterfaceOrientation)。使用 UIApplicationStatusBarOrientationUserInfoKey 来访问这个值
Available in iOS 2.0 and later.
在 UIApplication.h 中声明