根据设备的不同设备方向(iPhone 或 iPad)
Different Device Orientation according to device (iPhone or iPad)
我正在开发一个具有以下要求的通用项目:
- 对于iPhone,我只想要纵向。
- 对于iPad,只有风景。
如何为 iOS 8 (Swift) 做到这一点?
我的建议是检查您的应用程序 运行 所在的硬件。为此,请使用这行代码。
if([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
然后,检测到硬件后,使用 shouldAutorotateToInterfaceOrientation 阻止方向:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation
{
return UIInterfaceOrientationIsLandscape(orientation);
}
举个例子,你可以这样做
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation
{
if([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
return UIInterfaceOrientationIsLandscape(orientation); // If iPad
else
return UIInterfaceOrientationIsPortrait(orientation); // Else, it is an iPhone
}
按照@ScarletMerlin 的建议,更改 info.plist 中的键,在我看来,是满足我必须满足的要求(每种设备的固定方向类型)的最佳解决方案。
这是我使用的设置的打印屏幕。或许可以帮助到其他有类似疑问的开发者。
相关源代码如下所示:
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
我正在开发一个具有以下要求的通用项目:
- 对于iPhone,我只想要纵向。
- 对于iPad,只有风景。
如何为 iOS 8 (Swift) 做到这一点?
我的建议是检查您的应用程序 运行 所在的硬件。为此,请使用这行代码。
if([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
然后,检测到硬件后,使用 shouldAutorotateToInterfaceOrientation 阻止方向:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation
{
return UIInterfaceOrientationIsLandscape(orientation);
}
举个例子,你可以这样做
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation
{
if([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
return UIInterfaceOrientationIsLandscape(orientation); // If iPad
else
return UIInterfaceOrientationIsPortrait(orientation); // Else, it is an iPhone
}
按照@ScarletMerlin 的建议,更改 info.plist 中的键,在我看来,是满足我必须满足的要求(每种设备的固定方向类型)的最佳解决方案。
这是我使用的设置的打印屏幕。或许可以帮助到其他有类似疑问的开发者。
相关源代码如下所示:
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>