имам scrollView
към които се добавят и премахват персонализирани изгледив отговор на потребителското взаимодействие. Искам да се уверя, че изгледът на контейнера е винаги достатъчно голям, за да показва всички подпрофили, и би искал да открие кога е добавен или премахнат изглед. Опитах се да използвам KVO:
[self.scrollView addObserver:self forKeyPath:@"subviews" options:NSKeyValueObservingOptionNew context:nil];
Но докато нямаше грешка, observeValueForKeyPath:...
Методът никога не се извиква, когато се промени броят на подвидовете. Какво трябва да използвам вместо това?
Послепис Знам, че мога да поставя изчислението на желаното contentSize
собственост директно в методитедобавяне / премахване на subviews за scrollView, но поради архитектурни причини, тази опция е по-ниска от мен и аз предпочитам нещо като KVO вместо това.
Отговори:
2 за отговор № 1"subviews" е винаги там, когато е създаден UIView, опитайте да наблюдавате "subviews.count". Или по-добър начин, използвайте следния API от UIView:
- (void)didAddSubview:(UIView *)subview
Моля, вижте: „Наблюдение на промените, свързани с изгледа“ тук.