Esiste un modo automatico di essere a conoscenza delle modifiche di ContentSize in UITableView/UIScrollView?UITableView/UIScrollView come sapere automaticamente quando si modifica ContentSize?
risposta
La risposta è in realtà semplice utilizzando KVO (Key Value Observing);
- (id)initWithFrame:(CGRect)frame tableView:(UITableView *)tableView
{
// ....
[self.tableView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld | NSKeyValueObservingOptionPrior context:NULL];
// ....
}
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if ([keyPath isEqualToString:@"contentSize"])
{
// Do something
}
}
Non sono ancora sicuro delle bandiere.
So che è stato qualche tempo fa, ma grazie mille! – ryanwils
Ricordatevi inoltre di '-removeObserver: forKeyPath: context:' – titaniumdecoy
Di solito metto '-removeObserver: forKeyPath: context:' nel metodo '-dealloc'. –
Per coloro che non amano KVO:
- (void)setContentSize:(CGSize)contentSize {
[super setContentSize:contentSize];
// Do something.
}
Sì, basta usare super
per accedere al metodo genitore. Questo presuppone che si sottoclassi UIScrollview/TableView/CollectionView
- 1. UITableView contentSize
- 2. Aggiungi automaticamente nuova riga alla tabella quando si modifica l'ultima
- 3. Quando viene impostato un contentSize di UITableView?
- 4. Come espandere UICollectionView contentSize quando abilita la paginazione?
- 5. Come posso sapere quando è avvenuta questa modifica all'API Java?
- 6. Quando si copia automaticamente aggiungere l'URL
- 7. Come disegnare il fumetto come UITextview ContentSize
- 8. UIScrollView contentsize viene reimpostato su zero quando si utilizza il layout automatico
- 9. Cosa succede quando si modifica direttamente Gemfile.lock?
- 10. Come sapere quando nella finestra VBA
- 11. Quando si verifica automaticamente il boxing automatico?
- 12. Come si modifica l'animazione predefinita quando si cambia attività?
- 13. Come si modifica core.autocrlf quando si utilizza SmartGit?
- 14. come sapere le possibili eccezioni quando si usa try catch?
- 15. Aggiungi automaticamente le proprietà quando si esegue JUnit in Eclipse
- 16. Come modificare dinamicamente il contentSize di UIPopoverController?
- 17. sapere quando chiamare persiste
- 18. Come ricaricare automaticamente il progetto Node.js quando si utilizza pm2
- 19. Quando si modifica $ _ può essere sbagliato?
- 20. Modifica ActionBar quando si utilizza frammenti
- 21. Come posso sapere quando HttpClient è scaduto?
- 22. Come sapere quando il modello viene disattivato automaticamente da a: dependent =>: destroy in rail?
- 23. Tomcat 7: evitare il riavvio automatico quando si modifica context.xml
- 24. AngularJS: rileva automaticamente la modifica nel modello
- 25. Come sapere quando Big O è logaritmico?
- 26. Come rimuovere automaticamente il collegamento all'applicazione dalla schermata iniziale quando si disinstalla automaticamente?
- 27. Si verifica quando si modifica la formattazione della fonte?
- 28. Come si modifica ansible_default_ipv4?
- 29. Come impostare intestazioni http personalizzate quando si modifica iframe src?
- 30. Come posso sapere quando è finita l'animazione di UITableView?
* cosa * deve essere a conoscenza di una modifica della dimensione del contenuto? Gli oggetti "' UITableView' "e" 'UIScrollView'" sono essi stessi o qualcosa che li contiene o qualcos'altro? –