How do I know that the UICollectionView has been loaded completely? Próbuję odtworzyć to rozwiązanie w Swift, ale mam problem z odczytaniem Obj-C. Czy ktoś może pomóc?Kiedy ładuje się całkowicie UICollectionView?
Odpowiedz
Jeśli chcesz przejść z podejściem z pytaniem jesteś powiązany, a następnie:
override func viewDidLoad() {
super.viewDidLoad()
self.collectionView?.addObserver(self, forKeyPath: "contentSize", options: NSKeyValueObservingOptions.Old, context: nil)
}
override func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {
if let observedObject = object as? UICollectionView where observedObject == self.collectionView {
print(change)
}
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
self.collectionView?.removeObserver(self, forKeyPath: "contentSize")
}
SWIFT 3: wersja użytkownika @ Libeč odpowiedź
override func viewDidLoad() {
super.viewDidLoad()
collectionView.addObserver(self, forKeyPath: "contentSize", options: NSKeyValueObservingOptions.old, context: nil)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
collectionView.removeObserver(self, forKeyPath: "contentSize")
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if let observedObject = object as? UICollectionView, observedObject == collectionView {
print("done loading collectionView")
}
}
W moim przypadku problemem było to, widok kolekcji nie został w pełni ponownie załadowany, więc musimy poczekać, aż zakończy się widok kolekcji "reloadData":
self.customRecipesCV.reloadData()
DispatchQueue.main.async {
if let _index = self.selectCustomRecipeAtIndex {
let nextIndexpath = IndexPath(row:index, section:0)
self.customRecipesCV.scrollToItem(at: nextIndexpath, at: .centeredHorizontally, animated: true)
}
}
późne odpowiedzieć,
Na viewDidAppear można je dostać przez:
float height = self.myCollectionView.collectionViewLayout.collectionViewContentSize.height;
Może po ponownym wczytaniu danych Następnie należy obliczyć nową wysokość nowymi danymi, a następnie można je dostać przez: dodaj obserwatora słuchać gdy CollectionView zakończeniu danych za doładowanie w viewDidLoad:
[self.myCollectionView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionOld context:NULL];
Następnie dodać funkcję miech, aby uzyskać nową wysokość lub zrobić coś po CollectionView wykończone reload:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
//Whatever you do here when the reloadData finished
float newHeight = self.myCollectionView.collectionViewLayout.collectionViewContentSize.height;
}
I nie zapomnij usunąć obserwator:
Wpisz kod w viewWillDisappear
[self.myCollectionView removeObserver:self forKeyPath:@"contentSize" context:NULL];
Aby uzyskać więcej informacji prosimy zajrzeć do odpowiedzi https://stackoverflow.com/a/28378625/6325474
- 1. Jak sprawdzić, kiedy ładuje się urządzenie?
- 2. iOS 11: UICollectionView: kiedy się pojawia, przewijanie się dzieje
- 3. Czy możliwy jest całkowicie statyczny UICollectionView?
- 4. Kiedy klasaLoader ładuje import?
- 5. kiedy jest całkowicie załadowany highchart?
- 6. Webkit - dynamicznie tworzony arkusz stylów - kiedy naprawdę się ładuje?
- 7. UICollectionView nakładanie się komórek
- 8. Strona nie ładuje się całkowicie w IE7 lub IE8 (ale działa w innych przeglądarkach)
- 9. Osłona nie ładuje się WDM
- 10. Firefox webfont nie ładuje się
- 11. jQuery UI nie ładuje się
- 12. Projektant XAML nie ładuje się
- 13. Jak ładuje się saldo kafka?
- 14. Jak pozbyć się "$ (ReplacableToken ...)" w web.config całkowicie
- 15. Google Analytics nie ładuje się w Chrome
- 16. Jak dowiedzieć się, który moduł ładuje Łosia?
- 17. python - Kiedy WebSocketHandler i TornadoWebSocketClient są całkowicie usunięte?
- 18. Ember danych: Wiedząc, kiedy RecordArray jest całkowicie wypełniony
- 19. UICollectionView registerClass: Metoda forCellWithReuseIdentifier łamie UICollectionView
- 20. Google Map na Androida nie ładuje się
- 21. serwer https node.js nie ładuje się odpowiadając
- 22. Jak wiarygodnie określić, kiedy układ UICollectionView zakończył animowanie
- 23. JavaScript w Ajax ładuje się bardzo powoli
- 24. Pow domeny nie ładuje się w Chrome
- 25. Wyświetla ikonę ładuje się podczas zdjęć ładunki
- 26. Domyślnie zakładka nawigacji Bootstrap nie ładuje się
- 27. Dlaczego mój klejnot ładuje się tak długo?
- 28. jqgrid undefined integer? pager nie ładuje się
- 29. Addthis nie ładuje się na zawartość ajax
- 30. Assets ładuje się powoli w rozwoju
Brakujące nawiasy po napisu „Gotowe ładowanego rzeczy ... " –