W tableView:cellForRowAtIndexPath:
Mam następujący:W UITableView, cell.detailTextLabel.text nie działa ... dlaczego?
cell.textLabel.text = @"label";
cell.detailTextLabel.text = @"detail";
W textLabel
pokazuje jak oczekiwano, ale detailTextLabel
nie pojawia się w ogóle, chociaż nie ma diagnostyki. Spodziewałem się, że tekst "szczegółów" pojawi się w komórce w drugiej linii, poniżej "normalnego" tekstu, prawdopodobnie z mniejszym rozmiarem czcionki.
To samo pytanie jest zadawane w innym poście, a użytkownik "jbrennan" odpowiedział, że styl komórki widoku tabeli musi być inny niż UITableViewCellStylePlain
. Wydaje się jednak, że istnieją tylko dwa możliwe style: UITableViewCellStylePlain
i UITableViewCellStyleGrouped
. Otrzymuję taki sam wynik (albo nie pojawia się etykieta szczegółów).
Czy jest inny styl komórki, którego nie widzę w dokumentacji? Czy zmiana UITableView
w ostatniej aktualizacji i detailTextLabel
nie jest już dostępna? Czy muszę zrobić coś ekstra, aby się pojawiło? Jakieś sugestie?
Używam xcode 3.2.5 i budynku dla iPhone 4.2 Simulator.
Dobrze! Dziękuję Ci. Próbowałem zmienić styl na Subtitle, ale zmieniłem UITableViewStyle zamiast UITableViewCellStyle i nie skompilowałem, więc myślałem, że styl Subtitle nie jest już dostępny. – RobertL
Haha! Wszyscy robimy głupie błędy podczas kodowania. Myślę, że gdyby Apple wyłączył podtytuł, pojawiłyby się zamieszki. –
Wygląda na to, że za każdym razem zainicjuje nowy UITableViewCell, zamiast odrywać się od stosu, aby zachować pamięć. Wydaje się, że jedynym sposobem na ponowne wykorzystanie komórek stylu UITableViewCellStyleSubtitle byłoby podklasy, zastąpić inicjatora i wywołaj zwykłe '[tableView dequeueReusableCellWithIdentifier: @" ReuseIdentifier "];' Czy ktoś może potwierdzić lub zaprzeczyć? Zobacz dyskusję na temat 'initWithStyle: reuseIdentifier:' https://developer.apple.com/library/ios/documentation/Uikit/reference/UITableViewCell_Class/index.html#//apple_ref/occ/instm/UITableViewCell/initWithStyle:reuseIdentifier: –