在 iOS 8.0 中使用 NSLayoutAnchor

iOS 9.0 引入了一些新的关于 Auto Layout 的 APIs,其中一个就是 NSLayoutAnchor

在 iOS 8.0 中,约束的书写方式通常像下面这样:

view2.translatesAutoresizingMaskIntoConstraints = false

let constraint = NSLayoutConstraint(item: view2,
    attribute: .Top,
    relatedBy: .Equal,
    toItem: view1,
    attribute: .Top,
    multiplier: 1,
    constant: 0)

constraint.active = true

而在 iOS 9.0 中,上面的代码可以简化成下面这样:

view2.translatesAutoresizingMaskIntoConstraints = false
view2.topAnchor.constraintEqualToAnchor(view1.topAnchor).active = true

那么为了在 iOS 8.0 中也可以有 9.0 中那样便捷的 APIs,我参照 9.0 的 APIs 使用了一点点的代码进行封装,于是上面的代码在 8.0 中可以变成这样:

view2.top.eq(view1.top)

相关代码只有短短几行,源码在 MCDLayout。

你可能感兴趣的:(在 iOS 8.0 中使用 NSLayoutAnchor)