自动调整不同屏幕尺寸的视图对象

时间:2015-09-01 13:29:55

标签: ios swift autolayout

通常我会在我的项目中取出故事板,并通过在视图中书写来放置我的视图对象,如按钮,标签等:

 class welcomeScreen : UIView {

let btn : UIButton!
override func viewLoad(){
self.backgroundColor = UIColor.whiteColor()
//define frame for Button
btn = UIButton(frame : self.screenAutoLayoutCalc(19.32,42.44,64.73, 15.73))
btn.setTitle ("submit",.Normal)
btn.backgroundColor = UIColor.grayColor()
//add to view
self.addSubview(btn)
}

//calculate object x, y, width and height based by bounds size
func screenAutoLayoutCalc(x:CGFloat,y:CGFloat,w:CGFloat,h:CGFloat) {

let screenSize : CGRect = self.bounds
let returnCG : CGRect = CGRect()
returnCG.origin.x = round((screenSize.width * x)/100)
returnCG.origin.y = round((screenSize.height * x)/100)
returnCG.size.width = round((screenSize.width * w)/100)
returnCG.size.height = round((screenSize.height * h)/100)
return returnCG


}
 }

我想知道,还有另一种方法可以在iOS(swift)编程中进行响应式设计吗?

1 个答案:

答案 0 :(得分:1)

您可以通过多种方式在应用中实现视觉元素的自适应性。您需要了解Size Classes

  

人们通常希望在所有设备和任何方向上使用自己喜欢的应用。在iOS 8及更高版本中,您可以使用大小类和自动布局通过定义在显示环境发生变化时屏幕,视图控制器和视图的布局应如何适应来帮助您满足此期望。

和NSLayoutConstraints。

  

约束定义了必须由基于约束的布局系统满足的两个用户界面对象之间的关系。

我建议使用故事板学习大小类和约束的基本知识,然后慢慢编写代码而不是单击并拖动故事板。

我建议你仔细阅读tutorial以了解相关信息。