如何使UIView检测父比例的变化?

时间:2018-10-19 16:38:30

标签: ios cocoa-touch uikit core-animation

是否有一种方法可以自动检测UIView何时更改其在屏幕上的外观比例,因为其父级之一更改了比例?请注意,我不是在问如何检测UIView的 own 标度属性是否发生变化,而是要检测其父项之一是否发生变化?

1 个答案:

答案 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

我希望这会有所帮助!