我有多个相互依赖的UIView
,UIView
可以更改其框架。
其他UIView
响应当前正在变化的UIView
。
然而,UIView
使用动画更改其框架,我尝试观察UIView
的{{1}}属性,但它在开始制作动画后给出了最后的结果。
这是我目前的设置:
frame
观察override func viewDidLoad() {
super.viewDidLoad()
view.addObserver(self, forKeyPath: "frame", options: [NSKeyValueObservingOptions.old, .new, .prior, .initial], context: nil)
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if let obj = object as? UIView {
print(obj.layer.frame.minY)
}
}
时的结果示例:
622.0
252.0
我的问题是:
我希望在制作动画时观察当前的obj.layer.frame.minY
。
更新
我尝试使用presentation()方法,但我仍然得到相同的结果。我是这样做的:
obj.layer.frame.minY