如何在 iOS Swift 3.1 Xcode 8.3.2 中为 iPad 应用程序安装 iPhone 应用程序
Posted
技术标签:
【中文标题】如何在 iOS Swift 3.1 Xcode 8.3.2 中为 iPad 应用程序安装 iPhone 应用程序【英文标题】:How to fit iPhone app for iPad app in iOS Swift 3.1 Xcode 8.3.2 【发布时间】:2017-05-02 18:40:58 【问题描述】:我使用 swift 3 和 Xcode 8.3.2 制作了 iOS 应用程序,它可以正常工作(适合所有 iPhone 屏幕尺寸)但是iPad 不适合。 我在常规/目标设置中设置了 iPhone 模式。 我已经做了这个过程,没有问题。 请帮我修复它。我不想设置通用设置。 看到这个:
【问题讨论】:
您要么接受这是仅 iPhone 应用程序在 iPad 上的工作方式,要么创建通用应用程序。这是你的两个选择。 您的应用程序“在所有 iPhone 尺寸上都能正常工作”,但我怀疑您没有在 3.5" iPhone (iPhone 3/4) 上进行测试,因为这是 iPhone 中 iPad 使用的尺寸模式。 【参考方案1】:您可以为 iPad 和 iPhone 设置不同的故事板 info.plist
或者您可以从您的 appdelegate 加载您的特定故事板。你可以查看this link out
【讨论】:
【参考方案2】:您可以通过在您的课程中使用下面的代码来更改屏幕大小或组件约束值,这样您就可以为 iphone 和 ipad 设置视图。
struct Device
// iDevice detection code
static let IS_IPAD = UIDevice.current.userInterfaceIdiom == .pad
static let IS_IPHONE = UIDevice.current.userInterfaceIdiom == .phone
static let IS_RETINA = UIScreen.main.scale >= 2.0
static let SCREEN_WIDTH = Int(UIScreen.main.bounds.size.width)
static let SCREEN_HEIGHT = Int(UIScreen.main.bounds.size.height)
static let SCREEN_MAX_LENGTH = Int( max(SCREEN_WIDTH, SCREEN_HEIGHT) )
static let SCREEN_MIN_LENGTH = Int( min(SCREEN_WIDTH, SCREEN_HEIGHT) )
static let IS_IPHONE_4_OR_LESS = IS_IPHONE && SCREEN_MAX_LENGTH < 568
static let IS_IPHONE_5 = IS_IPHONE && SCREEN_MAX_LENGTH == 568
static let IS_IPHONE_6 = IS_IPHONE && SCREEN_MAX_LENGTH == 667
static let IS_IPHONE_6P = IS_IPHONE && SCREEN_MAX_LENGTH == 736
static let IS_IPHONE_X = IS_IPHONE && SCREEN_MAX_LENGTH == 812
现在您可以像这样设置约束:==
if(Device.IS_IPHONE_5 || Device.IS_IPHONE_4_OR_LESS)
//--- set your constrain for iphone 5 and 4
else if(Device.IS_IPAD)
//--- set your constrain for ipad
else
//--- set default constrain
【讨论】:
以上是关于如何在 iOS Swift 3.1 Xcode 8.3.2 中为 iPad 应用程序安装 iPhone 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Xcode 8/Swift 3 中创建 iOS liveView [重复]
如何在 Xcode 8 和 iOS 10 中使用 AFNetworking 类和 Swift 3 上传图像
如何在 SWIFT3 XCODE 8.2 的 IOS 应用程序中显示 Snackbar 的操作中的特定视图
Swift - Xcode 8 - iOS 10 - 无法创建简单约束