Я заинтересован в запуске некоторых методов при изменении моего UIView либо с помощью изменения рамки, либо с помощью аффинного преобразования. Моя лучшая идея - сделать это, наблюдая изменения значений для:ключ-значение-кодирование ivars UIView
myView.frame
и myView.transform
.
Однако, часть представления UIView не является жалобой по ключевому значению. В Fortunatly модельная часть представления, CALayer. Поэтому я настраиваю как:
[self.layer addObserver:self forKeyPath:@"transform"
options:(NSKeyValueObservingOptionNew) context:NULL];
В viewDidLoad: часть вида. Я сделал то же самое для клавиши «frame». Но когда вид изменяется, либо путем перемещения вид вокруг в нем супер вид, или аффинных преобразований, метод:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
никогда не вызывается. Что дает? Есть ли лучший способ наблюдать изменения в кадре UIViews и преобразовывать?