我成功地以纵向模式查看应用程序。问题是什么,当我在风景中看它时,它似乎不合适。我已经实现了这段代码。
if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeLeft)
{
return interfaceOrientation=UIInterfaceOrientationLandscapeLeft;
}
else if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeRight)
{
return interfaceOrientation=UIInterfaceOrientationLandscapeRight;
}
else if([UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortrait)
{
return interfaceOrientation=UIInterfaceOrientationPortrait;
}
我应该做些额外的事吗?这段代码对我有用吗?
答案 0 :(得分:1)
如果您想支持所有可能的方向,请将shouldAutorotateToInterfaceOrientation:
的实施更改为以下内容:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
如果您只想支持:UIInterfaceOrientationLandscapeLeft
,UIInterfaceOrientationLandscapeRight
和UIInterfaceOrientationPortrait
,请将您的代码更改为:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown;
}
您无需在[UIApplication sharedApplication].statusBarOrientation
中查找新方向,因为您已将其作为参数。
如果要在旋转设备时重新定位视图元素,则必须使用其autoresizingMask
属性。另一种选择是实现方法willRotateToInterfaceOrientation
。
您可以在尺寸检查器中更改Interface Builder中视图元素的autoresizingMask
。尝试尝试不同的组合,直到获得所需的结果。
最后请注意,如果您的视图很复杂或在每个方向上完全不同,最好的选择是使用两个xib文件:一个用于纵向,一个用于横向。