YVAnchor 0.1.2

YVAnchor 0.1.2

Shadberrow 维护。



YVAnchor 0.1.2

  • 作者:
  • Shadberrow

YVAnchor

CI Status Version License Platform

关于

Swift 中处理锚点的语法糖。现在,您永远不会再忘记激活约束或将 translatesAutoresizingMaskIntoConstraints 参数设置为 NO😜

用法

不用这个

rect.translatesAutoresizingMaskIntoConstraints = false
rect.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 30).isActive = true

用这个

rect.pin(.left, to: view.left, constant: 30)

示例

// Note! Form views hierarchy first
view.addSubview(rectangle)
rectangle.addSubview(a)
rectangle.addSubview(b)
view.addSubview(c)
view.addSubview(d)

rectangle.top.pin(to: view.top, constant: 80)
rectangle.left.pin(to: view.left, constant: 20)
rectangle.right.pin(to: view.right, constant: -20)
rectangle.size(height: 340)

a.square(45)
a.top.pin(to: rectangle.top)
a.left.pin(to: rectangle.left)

b.square(45)
b.centered(in: rectangle)

c.square(60)
c.pin(.top, to: rectangle.top)
let rightC = c.pin(.right, to: rectangle.left, constant: -80)

d.square(60)
d.pin(.top, to: rectangle.top)
let leftD = d.pin(.left, to: rectangle.right, constant: 80)

view.layoutIfNeeded()

UIView.animate(withDuration: 1, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.5, options: [.curveLinear, .repeat, .autoreverse], animations: {
    self.rectangle.find(.top)?.constant = 190
    self.rectangle.find(.left)?.constant = 60
    self.rectangle.find(.right)?.constant = -60
    self.a.find(.left)?.constant = 70
    leftD.constant = 10
    rightC.constant = -10
    self.view.layoutIfNeeded()
})

注意

在设置锚点之前,请先将它们添加到父视图。

安装

YVAnchor可通过CocoaPods获取。要安装它,只需将以下行添加到Podfile文件中

pod 'YVAnchor'

作者

Shadberrow, [email protected]

许可协议

YVAnchor在MIT许可下可用。有关更多信息,请参阅LICENSE文件。