Ios 如何根据屏幕大小加载特定的故事板
我正在尝试开发一款与3.5英寸和4英寸显示器兼容的应用程序。但是,当我尝试使用自动布局时,我无法根据屏幕的大小确定如何调整视图的大小。我能想象的唯一其他方法是设计两个故事板,然后根据手机屏幕的大小加载一个故事板。有人能帮我解决这个问题吗?谢谢你抽出时间 在故事板上查看。可以在不同的设备上使用相同的代码指定相同组件的其他布局 如果确实要使用不同的故事板,请在AppDelegate中的方法Ios 如何根据屏幕大小加载特定的故事板,ios,xcode,autolayout,uistoryboard,Ios,Xcode,Autolayout,Uistoryboard,我正在尝试开发一款与3.5英寸和4英寸显示器兼容的应用程序。但是,当我尝试使用自动布局时,我无法根据屏幕的大小确定如何调整视图的大小。我能想象的唯一其他方法是设计两个故事板,然后根据手机屏幕的大小加载一个故事板。有人能帮我解决这个问题吗?谢谢你抽出时间 在故事板上查看。可以在不同的设备上使用相同的代码指定相同组件的其他布局 如果确实要使用不同的故事板,请在AppDelegate中的方法application:didfishlaunchingwithoptions:中设置它。在这里,您可以通过 s
application:didfishlaunchingwithoptions:
中设置它。在这里,您可以通过
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
并使用
let storyboard = UIStoryboard(name: "Main", bundle: nil)
window!.rootViewController = storyboard.instantiateViewControllerWithIdentifier("InitVC") as UIViewController
window!.makeKeyAndVisible()
此代码将使用脚本
Main
和初始视图控制器InitVC
来实例化应用程序。AutoLayout无法针对特定型号的iPhone。然而,有一个解决办法。你有两个选择
第一选择
放置一个不可见的ui视图
,并创建与Superview
一起附带的顶部、底部、前导和尾随约束。然后将对象(它们可以是UIImageViews
,UILabels
,列表继续)放置在刚才放置的UIView
中。现在创建将对象连接到ui视图的顶部和底部约束
我创建了一个演示来向您展示它是如何完成的。正如您将看到的,根据屏幕的大小,按钮有不同的大小。从链接下载演示
第二种选择
您可以通过编程方式创建和修改约束。创建一个NSLayoutConstraint
,并根据用户的设备调整其常数
:
var myConstant: CGFloat = 0
if UIScreen.mainScreen().bounds.size.height == 480 {
// iPhone 4
myConstant = 10
} else if UIScreen.mainScreen().bounds.size.height == 568 {
// iPhone 5
myConstant = 20
} else if UIScreen.mainScreen().bounds.size.width == 375 {
// iPhone 6
myConstant = 30
} else if UIScreen.mainScreen().bounds.size.width == 414 {
// iPhone 6+
myConstant = 40
} else if UIScreen.mainScreen().bounds.size.width == 768 {
// iPad
myConstant = 50
}
var myConstraint = NSLayoutConstraint (item: myButton,
attribute: NSLayoutAttribute.Top,
relatedBy: NSLayoutRelation.Equal,
toItem: self.view,
attribute: NSLayoutAttribute.Top,
multiplier: 1,
constant: myConstant)
self.view.addConstraint(myConstraint)