2011-06-08 27 views
6

Sadece tableView ile ilgili bir sorum var.Bir bölümdeki bölüm - UITableView -

Bilinen bölüm ve satır sayısını döndürebileceğimizi biliyorum. (Mümkünse, başka bir bölüme)

  • bir bölümünde bir bölüm - - Ve sonra oradan satırları yapılandırın: Ben böyle bir şey nasıl olabilir

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
    
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
    

    söyleyebilir misiniz?

Ya ben

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

cevap

9

Eğer gerçekten birden fazla satır ve belki bir başlık etiketinin oluşan bir satır döndürür nereye cellForRowAtIndexPath kendi uygulamasında yapmak zorunda kalacaktır içinde dönecekti. Ya da belki de diğer her satırda bir "başlık satırı" yapmak ve "header row" veya normal satırda olup olmadığını cellForRowAtIndexPath içinde kontrol etmek daha iyidir; Böyle bir şey:

if (indexPath.row == 0) { 
    // return header row 
} else { 
    // return normal row 
} 

ve numberOfRowsInSection tabii bir başlıkla bölümler için satır + 1 normal miktarda dönmek zorunda kalacaktır.

+1

Mantıken sesler harika! numberOfSections ve numberOfRowsInSection'da ne döndürürdüm? – Legolas

+1

Sanırım 3 ana bölümünüz var ve bölüm 1'de 3 alt bölüm var. numberOfSections 3 olmalı ve bölüm == 0 olduğunda numberOfRowsInSection satır + 3 döndürdü. Biri başlık ve 3 satır için. Ve cellForRowAtIndexPath içinde, yalnızca özel indexer satırını indexPath.row == 0 olduğunda döndürürdünüz. – vakio

+1

Üzgünüm (normal satır sayısı) + 3 başlık satırı. Başlıklar için 3 ve sonra normal satırlar. Ve şimdi, üstbilgileri nerede kullandığınızı takip etmelisiniz, bu yüzden cellForRowAtIndexPath öğesinde, bölüm 0'da 0, 5 ve 8 satırları için bir üstbilgi döndüreceksiniz. Bu, 1,2,3'teki normal satırlarınız olduğu anlamına gelir, 4 (alt bölüm 1), 6,7 (alt bölüm 2) vb. Alt alt bölümler için karmaşıktır (hatta daha da fazla), ancak NSDictionary'ler içindeki NSDictionaryerleri kullanarak bir ağacın tümünü oluşturabilirsin. – vakio