UIView tableFooterView UITableView'imde, tablonun altındaki bir "Yükleme daha fazla" etiketini göstermek için kullanıyorum. tableFooterView'daki UIView gösterildiğinde, içeriğin biraz indirilmesini başlatmalıyım. TableFooterView görüntülendiğinde nasıl anlarım?UITableView: tableFooterView görüntülendiğinde kodu çalıştır?
cevap
. Bir kullanıcının altbilgiyi görmek için aşağı kaydırmadan en son satıra kayar sayısı büyük olasılıkla çok azdır. Etki aynı olacaktır, yani kullanıcı tabana doğru kaydırdığında ve daha fazla veri yüklemeniz gerektiğinde.
Bu, tableView:cellForRowAtIndexPath:
'da kolayca uygulanabilir. IndexPath'in sonuncusunu takip ederek ve yeni satırlar eklendiğinde veya silindiğinde onu güncelleyerek, istenen hücrenin IndexPath'inin son satırın IndexPath ile aynı olup olmadığını ve tembel yüklemenin tetiklenip tetiklenmediğini kontrol edebilirsiniz. oradan daha fazla veri, şu anda yaptığınız gibi. senin tableFooterView
Eğer
tableFooter, dediğiniz gibi, bir UIView olduğundan, çizimi drawRect'te işleme alır:. Üzerine yazıyorsanız bir bildirim alabilirsiniz.
Düzenleme: eski yanıt hatalıydı.
Ayak çerçevesini pencere koordinatlarına dönüştürebilir ve bunları karşılaştırabilirsiniz. Altbilgi gizlendiğinde, Y kökü koordinatları> 480 (dikey mod için), altbilgi görüntülenince Y kökü < 480 koordinatlarını varsayar. DidScroll yönteminde karşılaştırma yapabilirsiniz.
Teşekkürler, umarım bu size yardımcı olur. Bunun yerine altbilgi görünümü tablosunun son satırı talep ediliyor size olabilir çek göstermek ve sonra verileri yükleyecektir belirlenmesinde oran
Bkz yöntemi convertRect:toView:
aşağıdaki değişkenlerle görünüm içine kaydırılması sırasında tam olarak hesaplayabilir, tablonun contentOffset
mülkiyetinde değişiklik gözlemleyerek (ve belki de tablonun contentSize
özelliğinde değiştirir) olduğu:
tableView.contentOffset.y
- içerik görünümünün kökenli kaydırma bakış kökenlitableView.contentSize.height
ofset olduğu dikey bir miktar - içerik görünümü yüksekliğitableView.bounds.size.height
-tablo sınırları
+ masa sınırları yükseklik tablo içerik boyutu yüksekliğini aşan ofset dikey içerik, biz altbilgi görünümünde şimdi varsayabiliriz yüksekliği.
Bunu bir if deyimine sarın ve bir bildirim göndermek için kullanabilirsiniz.Sen tutar görünüm denetleyici içinde bu uygulayabilirsiniz
// Set up an observer for changes in the table's contentOffset or contentSize.
// This can be done during initialisation of the tableFooterView
[tableView addObserver:self
forKeyPath:@"contentOffset"
options:NSKeyValueObservingOptionNew
context:NULL];
[tableView addObserver:self
forKeyPath:@"contentSize"
options:NSKeyValueObservingOptionNew
context:NULL];
// Further down in code, listen for the changes:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
if ([keyPath isEqualToString:@"contentOffset"] ||
[keyPath isEqualToString:@"contentSize"]) {
if((tableView.contentOffset.y + tableView.bounds.size.height) > tableView.contentSize.height){
// the tableFooterView should now be in view
[[NSNotificationCenter defaultCenter]
postNotificationName:@"scrollToLoadNeedsLoad"
object:self];
// dynamically change the footer here (ideal for making it stretch with the table)
}
}
}
: Burada eylem biraz kod snippet'ine
if((tableView.contentOffset.y + tableView.bounds.size.height) > tableView.contentSize.height){
//send notification, dynamic resizing, etc...`
}
: Daha sonra alt bilgi dinamik olarak da veya başka amaçlanan etkilere germek yapmak için ileri testler yapabilir bir tabloya başvurmak veya kendi özel ScrollToLoadView'unuzun içine yerleştirebilirsiniz.
Overkill. Tembel bir yükün tetiklenmesi veya tablonun son hücresi ne zaman istendiyse istenmesi gereken yoldur. – Daniel
- 1. Tüm tablo verilerini yeniden yüklemeden UITableView tableFooterView öğesini yenileyin
- 2. iOS: Klavye görüntülendiğinde UITableView animasyonu devre dışı bırakılıyor
- 3. Chrome: Javascript kodu için otomatik çalıştır?
- 4. Uygulama açık olmadığında her gün kodu çalıştır
- 5. Çalıştırılmadan önce çalıştır eslint Çalıştır
- 6. UITableView
- 7. UITableView
- 8. UITableView
- 9. UITableView
- 10. UITableview
- 11. UITableView
- 12. UITableView
- 13. UITableView
- 14. UITableView
- 15. UITableView
- 16. UITableView,
- 17. UITableview
- 18. UITableView:
- 19. UITableview
- 20. ActionBar, klavye görüntülendiğinde gizleniyor
- 21. UITableView alt
- 22. Dosyayı oku ve çalıştır ve çalıştır.
- 23. Otomatik Çalıştır dosyasını ruby ile çalıştır
- 24. AFNetworking - UITableView
- 25. "Çalıştır" android uygulaması eksik
- 26. kumaşta sudo olarak çalıştır
- 27. UIView ekranda görüntülendiğinde animasyonu başlatın
- 28. Mesaj görüntülendiğinde satır atlamalarını engelle?
- 29. Swift - UIViewController içindeki UITableView, UITableView işlevleri
- 30. Düz UITableView
Oy verdiğim için bunu bir kez uygulamıştım - bana en temiz çözüm gibi geliyor. –
Şu anda şu anda yapıyorum. Ben öyle yapmaya devam edeceğim. – dhrm
Ben de aynı şeyi yapıyorum ama bu en iyi yol mu? – Alupotha