Как заставить UIView обнаруживать изменения в родительском масштабе? - PullRequest
0 голосов
/ 19 октября 2018

Есть ли способ автоматически определять, когда UIView изменяет свой видимый масштаб на экране, потому что один из его родителей изменил масштаб?Обратите внимание, что я не спрашиваю, как определить, изменяется ли свойство собственного масштаба UIView, а свойство одного из его родителей?

1 Ответ

0 голосов
/ 19 октября 2018

Да.Есть несколько способов сделать это (даже без поиска, я знал, что мы можем сделать это с помощью 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

Надеюсь, это поможет!

...