SORU
27 EYLÜL 2009, Pazar


UİTableView veri istiyor bittiğinde haberdar?

Bir şekilde UITableView Bir veri kaynağından veri istiyor bittiğinde öğrenmek için var mı?

viewDidLoad/viewWillAppear/viewDidAppear yöntem ilişkilendirilmiş görünümü denetleyicisi hiçbiri (**5) çok erken yangın bütün olarak kullanmak geldi. Hiçbiri (tamamen anlaşılır) veri kaynağına sorgu süresi (görünümü kaydırılan kadar örneğin) için bitmiş garanti.

Bulduğum tek çözüm viewDidAppear, reloadData döndüğünde bu yana, tablo görünümünde reloadData aramakgarantili, ihtiyacı kadar veri kaynağını sorgulamak şimdilik bitmiş.

Ancak, bu oldukça kötü görünüyor, sanırım buna neden olan veri kaynağı olmak istedi için aynı bilgileri iki kez (otomatik olarak bir kez ve bir kez nedeniyle reloadData call) ilk yüklendi.

Bu işi yapmak istiyorum sebebi yakın satır UITableView - ama piksel seviyesine doğru, kaydırma konumunu korumak istiyorum.

Ne zaman geri kaydırma konumu (kullanarak scrollRectToVisible:animated:), ihtiyacım tablosunu görüntülemek için yeterli veri zaten var, ya da başka scrollRectToVisible:animated: yöntem çağrısı yaptığı hiçbir şey (ki ne olursa yer çağrıda kendi içinde herhangi bir viewDidLoad, viewWillAppear viewDidAppear).

Yardımınız için şimdiden teşekkürler!

CEVAP
17 HAZİRAN 2010, PERŞEMBE


Bu cevap cevap yazıldığından bu yana artık bazı değişiklikler UİTableView uygulama yapılan nedeniyle çalışma gibi görünmüyor. Bu yorum bakın : Get notified when UITableView has finished asking for data?

Bir kaç gündür bu sorun ile oynuyorum ve sınıflara UITableView'reloadData s en iyisidir :

- (void)reloadData {

    NSLog(@"BEGIN reloadData");

    [super reloadData];

    NSLog(@"END reloadData");

}

reloadData tablo bitirmek verileri yeniden önce bitmiyor. İkinci NSLog ateş olduğunda, tablo görünümü aslında veri için sorumu bitireyim.

UITableView reloadData önce ve sonra temsilciye yöntemler göndermek için alt ettim. Bir cazibe gibi çalışır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Lin Steven

    Lin Steven

    17 EKİM 2006
  • NLthomas21

    NLthomas21

    20 Mayıs 2008
  • Noam Erez

    Noam Erez

    3 NİSAN 2012