我一直在以编程方式学习Swift,并且正在构建相机(电影)应用程序。
我正在研究约束,而且非常简单。但我现在要做的是实现宽高比;用户可以循环使用标准的电影和电视纵横比来确定视图的大小。
在构建通用应用程序时,约束需要基于视图的高度。所以,我需要一个常数而不是数值。
类似的东西:
constant:self.view.Height/((self.view.Width*Consequent)/Antecedent)
我找到了下面的博文,并且一直在试图取消它。但由于这篇文章是在Swift参加BETA时编写的,我很难再创作任何东西。
http://blog.ikiapps.com/post/91024428050/making-auto-layout-constraints-more-like-math-in
我猜这个解决方案非常简单,但由于我是Swift(和iOS开发)的新手,我可能会忽略一些东西。任何帮助,建议,已知的帖子等将不胜感激!谢谢!
答案 0 :(得分:1)
以编程方式设置约束
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)