确定animation时的约束常量
我有一个视图控制器的顶部和底部视图设置如下:
---------------- | | | | | | | | ---------------- < constraint with constant of 250 | | | | | | | | ----------------
在IB中使用AutoLayout,我将每个视图设置为符合父级的外部,并给定中心约束250的常量。
然后我有一个IBOutlet我可以animation的中心约束:
// MARK: - View Containers @IBOutlet weak public var topView: UIView! @IBOutlet weak public var bottomView: UIView! // MARK: - Constraints @IBOutlet weak var splitViewDividerConstraint: NSLayoutConstraint!
和animation:
func animateConstraint() { splitViewDividerConstraint.constant = someNumber UIView.animate(withDuration: duration, animations: { self.view.layoutIfNeeded() }) }
在某些情况下,我需要确定约束条件是高于还是低于特定的y位置(假设当它上升超过100或更低的y
点,或者低于400或更高的y
点时)。
只要约束不是animation就可以工作,但是如果是这样,因为我在技术上在animation开始之前将约束设置为常量,它总是返回目标约束位置,如果约束animation仍然是不准确的发生。
有没有办法在animation中检索约束的当前位置?