我正在创建一个仅处于横向模式的应用,但我发现当我旋转设备时,应用会自动旋转到该方向。我在项目摘要中指定我只想要“左侧风景”,然后在每个视图控制器中添加
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return UIInterfaceOrientationLandscapeLeft;
}
虽然当我单击向右或向左旋转时应用程序以横向方式启动,但模拟器会按原样进入纵向,但应用程序也会自动旋转。即使设备旋转,如何让应用程序保持横向?
答案 0 :(得分:1)
除了你做的, 请使用以下
代替shouldAutorotateToInterfaceOrientation
功能
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
答案 1 :(得分:0)
我认为你误解了shouldAutorotateToInterfaceOrientation:
的用途。 不要求您“您支持哪些方向?”, 要求您“您是否支持此界面? “。因此,您的答案应该是YES
或NO
。
每次决定改变方向之前,它会问你这个问题,这样你就可以改变主意,有时候会支持它,有时候不会(如果你真的想要的话)。
例如,支持所有方向:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
...仅支持横向定位:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) ||
(interfaceOrientation == UIInterfaceOrientationLandscapeRight));
}
...仅支持横向左侧(如您所愿):
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return(interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
答案 2 :(得分:-1)
在您的info.plist中,您需要设置UISupportedInterfaceOrientations
的密钥,如下所示。:
除了shouldAutorotateToInterfaceOrientation:
方法之外,此限制是我的应用仅在横向模式下运行。如果您支持左/右风景。您的方法应如下所示:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}