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