ios - 使用 NSLayoutConstraint 更改约束

标签 ios swift autolayout xcode8

项目的 Github repository .

所以例如,我改变这个:

let orangeViewCenterXConstraint = NSLayoutConstraint(
  item: orangeView,
  attribute: .centerX,
  relatedBy: .equal,
  toItem: view,
  attribute: .centerX,
  multiplier: 1.0,
  constant: 0.0
)

为此:

orangeView.centerXAnchor.constraint(equalTo: view.centerXAnchor)

正确的方法是如何做同样的事情:

let purpleViewBottomSpaceConstraint = NSLayoutConstraint(
  item: purpleView,
  attribute: .bottom,
  relatedBy: .equal,
  toItem: orangeView,
  attribute: .top,
  multiplier: 1.0,
  constant: -8.0
)

我试过:

purpleView.bottomAnchor.constraint(equalTo: <#T##NSLayoutAnchor<AnyObject>#>, constant: <#T##CGFloat#>)

但我认为 purpleView 需要在 purpleVieworangeView 之间留一个空格,所以技术上 equalTo: orangeView, constant: -8.0,但这是错误的。

我不确定我目前在做什么,所以我来这里学习。

最佳答案

您必须指定 topAnchor,例如:

NSLayoutConstraint.activate([
    purpleView.bottomAnchor.constraint(equalTo: orangeView.topAnchor, constant: -8)
])

关于ios - 使用 NSLayoutConstraint 更改约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38004823/

相关文章:

swift - 无法减去包含两个字典的两个集合

iphone - 测试与 facebook 集成的应用程序

ios - 使用 cordova 工具集构建应用程序时出错

ios - objective-c - 什么是声明委托(delegate)的正确方法?

arrays - Swift 字典查找导致编译时错误

ios - swift中的图片加载效果

ios - 在对 tableView 约束进行动画处理时,TableViewCells 最初的大小错误

ios - 在渲染周期中调用自动布局方法的序列

storyboard - XCode 6中缺少UI元素

iphone - Xcode Autolayout - 约束等于另一个约束