2009-10-06 28 views
14

'daki tüm hücreleri seç Kullanıcı, araç çubuğunda bir düğmeye bastığında, tablodaki tüm hücreleri (UITableView) seçmek için en iyi yöntem hangisi olurdu? UITableView

[menuTable selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionTop]; 

Ancak bir UITableView birden çok hücreyi seçemezsiniz:

+0

? Bir tablo satırı seçimini sürdürmeye çalışıyorsanız, bunu yaparsanız App Store'dan reddedileceğinizi unutmayın. –

cevap

8

Bir hücre çağıran tablo görünümün selectRowAtIndexPath yöntemi seçebilirsiniz. Hücrelerin açık/kapalı durumunu göstermek ve işlemek istiyorsanız, UITableViewCellAccessoryCheckmark türünde aksesuar görünümü olan hücreyi kullanmalısınız.

+1

Tablo görünümü allowultentSelection öğesinde birden çok hücre seçebilirsiniz. – titaniumdecoy

+1

@titaniumdecoy, haklısınız. Ne yazık ki bu işlevsellik 2009 yılında mevcut değildi.) – Vladimir

+0

'UITableViewScrollPosition 'öğesini' .None' olarak ayarlamayı unutmayın. –

3

kendim denemedim (daha fazla detay için dokümanlar bakınız), ancak bu deneyin: indexPath aracılığıyla, düğme eylem olarak döngü

ve diyoruz:

İşte
for (i = 0; i < [tableView numberOfSections]; i++) { 
    for (j = 0; j < [tableView numberOfRowsInSection:i]; j++) { 
     indexPath.row = j; 
     indexPath.section = i; 
     [tableView selectRowAtIndexPath:indexPath animated:animated scrollPosition:scrollPosition]; 
    } 
} 
+0

Her yeni hücreyi seçtiğinizde - kaldırılmış olan önceki seçim. UITableView'da çoklu seçim yapamazsınız, – Vladimir

+0

görünüyor. Tablodaki seçim seçimini reddedip reddedilemeyeceğini merak ediyorumView: willDeselectRowAtIndexPath: delegate method. (Satırın seçimini iptal etmek istemezseniz, dönüş yapın.) – mahboudz

+0

Ben de işe yaramıyorum. Ana neyse (imo, ama HIG içinde tam olarak bir yer bulamıyor) sadece bir seferde birden fazla hücre seçmemelisiniz ve seçim durumu kalıcı olmamalıdır - bir şey yapmak için tablo hücresini seçersiniz. Hücre durumunu değiştirmek/göstermek için hücrenin onay işareti aksesuar görünümünü kullanmalısınız. – Vladimir

29

benim yöntemidir Bir tabloyu geçmek için iyi çalışıyor.

for (int i = 0; i < [ptableView numberOfSections]; i++) { 
    for (int j = 0; j < [ptableView numberOfRowsInSection:i]; j++) { 
     NSUInteger ints[2] = {i,j}; 
     NSIndexPath *indexPath = [NSIndexPath indexPathWithIndexes:ints length:2]; 
      UITableViewCell *cell = [ptableView cellForRowAtIndexPath:indexPath]; 
      //Here is your code 

    } 
} 
19

Bu tablo görünümündeki tüm satırlarını seçebilir:

bunun için bir kullanım durumu nedir
for (NSInteger s = 0; s < self.tableView.numberOfSections; s++) { 
     for (NSInteger r = 0; r < [self.tableView numberOfRowsInSection:s]; r++) { 
      [self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:r inSection:s] 
             animated:NO 
            scrollPosition:UITableViewScrollPositionNone]; 
     } 
    }