是否有一种方法可以自动检测UIView何时更改其在屏幕上的外观比例,因为其父级之一更改了比例?请注意,我不是在问如何检测UIView的 own 标度属性是否发生变化,而是要检测其父项之一是否发生变化?
答案 0 :(得分:1)
是的。有几种方法可以做到这一点(即使不进行搜索,我也知道我们可以通过 KVO,RxSwift或ReactiveCocoa做到这一点。)。所以,是的,如果您不参与反应式编程,请使用KVO。但我也认为您可以只使用父视图类发送的NotificationCenter。我忘了想念的另一种方式,我打算在这里键入它,但它不见了,很难过。
无论如何,例如:
[self.view addObserver:self forKeyPath:@"frame" options:0 context:NULL];
[self.view.layer addObserver:self forKeyPath:@"bounds" options:0 context:NULL];
[self.view.layer addObserver:self forKeyPath:@"transform" options:0 context:NULL];
[self.view.layer addObserver:self forKeyPath:@"position" options:0 context:NULL];
[self.view.layer addObserver:self forKeyPath:@"zPosition" options:0 context:NULL];
[self.view.layer addObserver:self forKeyPath:@"anchorPoint" options:0 context:NULL];
[self.view.layer addObserver:self forKeyPath:@"anchorPointZ" options:0 context:NULL];
[self.view.layer addObserver:self forKeyPath:@"frame" options:0 context:NULL];
代码块来自以下答案:https://stackoverflow.com/a/19687115/3231194
我希望这会有所帮助!