基于Swift NSLayoutConstraint方程的常数

时间:2015-07-03 08:45:28

标签: ios iphone swift nslayoutconstraint

我一直在以编程方式学习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开发)的新手,我可能会忽略一些东西。任何帮助,建议,已知的帖子等将不胜感激!谢谢!

1 个答案:

答案 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)