我正在努力加深对这些机制的理解。我有一个启用触摸并可以更新自己
我的理解是,
为什么在此处观察
请注意,我知道我可以直接观察
center
属性的UIView。我的理解是,
frame
属性是center
和bounds
的综合函数。假设这是真的,我在我的可触摸/可移动视图上放置了一个观察器来观察其frame
属性。但是当center
更改时,该观察器从未收到有关frame
更改的通知。如果我直接观察center
,它会按预期工作。为什么在此处观察
frame
不起作用?请注意,我知道我可以直接观察
center
,这很好。我还可以使用frame
的will/did方法来包围对center
的更改,然后也可以正常工作:[self willChangeValueForKey:@"frame"];
[self setCenter:center];
[self didChangeValueForKey:@"frame"];
但我主要想了解为什么它不能像我期望的那样开箱即用,以防我在KVO或视图几何方面概念上有所遗漏。
谢谢。