YVAnchor
关于
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文件。