我怎么能让我在iOS 8.3 SDK上用Swift编写的通用应用程序在iPhone上只支持纵向模式,而在iPad上同时支持纵向和横向模式?我知道在过去,这是在AppDelegate中完成的。我怎么能在Swift中做到这一点呢?
vfh0ocws1#
您可以通过编程来完成,或者更好的方法是,您可以简单地编辑项目的Info.plist(这应该更实用,因为它是一个全局设备配置)只需添加“支持的界面方向(iPad)”键
的数据
rkkpypqq2#
你可以通过编程来实现
override func shouldAutoRotate() -> Bool { if UIDevice.currentDevice().userInterfaceIdiom == .Pad { return true } else { return false } }
字符串然后
override func supportedInterfaceOrientations() -> Int { return UIInterfaceOrientation.Portrait.rawValue }
型或任何其他旋转方向,您希望在默认情况下。这应该会检测你使用的设备是否是iPad,并只允许在该设备上旋转。编辑:既然你只想要iPhone上的肖像,
override func supportedInterfaceOrientations() -> Int { if UIDevice.currentDevice().userInterfaceIdiom == .Phone { return UIInterfaceOrientation.Portrait.rawValue } else { return Int(UIInterfaceOrientationMask.All.rawValue) } }
型
wko9yo5t3#
我不确定Chris的答案是否可以通过复制和粘贴“Supported Interface orientations(iPad)”键来实现;从info.plist的XML源代码来看,可能无法实现不同方向的支持。您可以打开info.plist XML源代码并按如下方式编辑它:
info.plist
<key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> </array> <key>UISupportedInterfaceOrientations~ipad</key> <array> <string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationPortraitUpsideDown</string> <string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string> </array>
字符串xcode UI中有一个简单的approche。转到项目设置。在“General”选项卡中选择目标,然后在“Deployment Info”部分中,您可以首先选择iPhone/iPad并标记您想要支持的设备方向,然后将设备更改为“Universal”。它将在后台生成上述xml。x1c 0d1x这里的“通用”选项显示了iPhone和iPad之间常见的选项。
ygya80vv4#
我知道在过去,这是在AppDelegate中完成的。我怎么能在Swift中做到这一点呢?你使用的语言不会改变应用程序的架构。你在Swift中做这件事的方式和在Swift中做这件事的方式一样,即通过实现:
optional func application(_ application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> Int
字符串在应用程序委托中。
nafvub8i5#
如果你想在Swift 4中为一个特定的ViewController设置这个(在iPad上允许所有,但在iPhone上只允许肖像):
override var supportedInterfaceOrientations:UIInterfaceOrientationMask { return UIDevice.current.userInterfaceIdiom == .pad ? UIInterfaceOrientationMask.all : UIInterfaceOrientationMask.portrait }
字符串
juzqafwq6#
Xcode 15为iPhone和iPad提供了单独的值
6条答案
按热度按时间vfh0ocws1#
您可以通过编程来完成,或者更好的方法是,您可以简单地编辑项目的Info.plist(这应该更实用,因为它是一个全局设备配置)
只需添加“支持的界面方向(iPad)”键
的数据
rkkpypqq2#
你可以通过编程来实现
字符串
然后
型
或任何其他旋转方向,您希望在默认情况下。
这应该会检测你使用的设备是否是iPad,并只允许在该设备上旋转。
编辑:既然你只想要iPhone上的肖像,
型
wko9yo5t3#
我不确定Chris的答案是否可以通过复制和粘贴“Supported Interface orientations(iPad)”键来实现;从
info.plist
的XML源代码来看,可能无法实现不同方向的支持。您可以打开info.plist
XML源代码并按如下方式编辑它:字符串
xcode UI中有一个简单的approche。转到项目设置。在“General”选项卡中选择目标,然后在“Deployment Info”部分中,您可以首先选择iPhone/iPad并标记您想要支持的设备方向,然后将设备更改为“Universal”。它将在后台生成上述xml。x1c 0d1x
这里的“通用”选项显示了iPhone和iPad之间常见的选项。
ygya80vv4#
我知道在过去,这是在AppDelegate中完成的。我怎么能在Swift中做到这一点呢?
你使用的语言不会改变应用程序的架构。你在Swift中做这件事的方式和在Swift中做这件事的方式一样,即通过实现:
字符串
在应用程序委托中。
nafvub8i5#
如果你想在Swift 4中为一个特定的ViewController设置这个(在iPad上允许所有,但在iPhone上只允许肖像):
字符串
juzqafwq6#
Xcode 15为iPhone和iPad提供了单独的值
的数据