美文网首页iOS Dev.iOS Developer程序员
在 iOS 8.0 中使用 NSLayoutAnchor

在 iOS 8.0 中使用 NSLayoutAnchor

作者: mconintet | 来源:发表于2016-05-11 00:09 被阅读353次

    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

        本文链接:https://www.haomeiwen.com/subject/rugyrttx.html