Swift NSLayoutConstraint 基于方程的常量
Swift NSLayoutConstraint Equation Based Constant
我一直在以编程方式学习 Swift,并以此构建相机(电影)应用程序。
我正在处理约束,这非常简单。但是我现在想做的是实现纵横比;用户可以循环选择将决定视图大小的标准电影和电视纵横比。
因为我正在构建通用应用程序,所以约束需要基于视图的高度。所以,我需要一个方程式而不是数值的常数。
类似于:
constant:self.view.Height/((self.view.Width*Consequent)/Antecedent)
我找到了下面的博客 post,并且一直以此为基础进行尝试。但是由于 post 是在 Swift 处于 BETA 阶段时编写的,所以我很难重新创建任何东西。
http://blog.ikiapps.com/post/91024428050/making-auto-layout-constraints-more-like-math-in
我猜解决方案非常简单,但由于我是 Swift(和 iOS 开发)的新手,我可能忽略了一些东西。任何帮助、建议、已知的 posts 等,我们将不胜感激!谢谢!
以编程方式设置约束
var verticalSpaceFromBotton = NSLayoutConstraint(item: objectName, attribute: NSLayoutAttribute.BottomMargin, relatedBy: NSLayoutRelation.Equal, toItem: self.viewControllerName, attribute: .BottomMargin, multiplier: 1, constant: -5)
self.viewControllerName.addConstraint(verticalSpaceFromBotton)
var trailingSpace = NSLayoutConstraint(item: objectName, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: self.viewControllerName, attribute: .Trailing, multiplier: 1, constant: -7)
self.viewControllerName.addConstraint(trailingSpace)
var width = NSLayoutConstraint(item: objectName, attribute: .Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: UIScreen.mainScreen().bounds.size.width - 14)
self.viewControllerName.addConstraint(width)
var height = NSLayoutConstraint(item: objectName, attribute: .Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 44)
self.viewControllerName.addConstraint(height)
我一直在以编程方式学习 Swift,并以此构建相机(电影)应用程序。
我正在处理约束,这非常简单。但是我现在想做的是实现纵横比;用户可以循环选择将决定视图大小的标准电影和电视纵横比。
因为我正在构建通用应用程序,所以约束需要基于视图的高度。所以,我需要一个方程式而不是数值的常数。
类似于:
constant:self.view.Height/((self.view.Width*Consequent)/Antecedent)
我找到了下面的博客 post,并且一直以此为基础进行尝试。但是由于 post 是在 Swift 处于 BETA 阶段时编写的,所以我很难重新创建任何东西。
http://blog.ikiapps.com/post/91024428050/making-auto-layout-constraints-more-like-math-in
我猜解决方案非常简单,但由于我是 Swift(和 iOS 开发)的新手,我可能忽略了一些东西。任何帮助、建议、已知的 posts 等,我们将不胜感激!谢谢!
以编程方式设置约束
var verticalSpaceFromBotton = NSLayoutConstraint(item: objectName, attribute: NSLayoutAttribute.BottomMargin, relatedBy: NSLayoutRelation.Equal, toItem: self.viewControllerName, attribute: .BottomMargin, multiplier: 1, constant: -5)
self.viewControllerName.addConstraint(verticalSpaceFromBotton)
var trailingSpace = NSLayoutConstraint(item: objectName, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: self.viewControllerName, attribute: .Trailing, multiplier: 1, constant: -7)
self.viewControllerName.addConstraint(trailingSpace)
var width = NSLayoutConstraint(item: objectName, attribute: .Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: UIScreen.mainScreen().bounds.size.width - 14)
self.viewControllerName.addConstraint(width)
var height = NSLayoutConstraint(item: objectName, attribute: .Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 44)
self.viewControllerName.addConstraint(height)