Próbuję dowiedzieć się, jak ustawić, UITableViewCellStyle
gdy używam nowych metod w iOS 6 dla UITableView
.
Wcześniej podczas tworzenia wyliczenia UITableViewCell
zmieniałem UITableViewCellStyle
wyliczenie, aby podczas wywoływania utworzyć różne typy komórek domyślnych, initWithStyle:
ale z tego, co mogę zebrać, już tak nie jest.
Dokumentacja Apple dla UITableView
stanów:
Wartość zwracana: obiekt UITableViewCell ze skojarzonym identyfikatorem ponownego wykorzystania. Ta metoda zawsze zwraca prawidłową komórkę.
Dyskusja : ze względu na wydajność źródło danych widoku tabeli powinno zasadniczo ponownie wykorzystywać obiekty UITableViewCell, gdy przypisuje komórki do wierszy w swojej metodzie tableView: cellForRowAtIndexPath:. Widok tabeli przechowuje kolejkę lub listę obiektów UITableViewCell, które źródło danych oznaczyło do ponownego użycia. Wywołaj tę metodę z obiektu źródła danych, gdy zostaniesz poproszony o podanie nowej komórki dla widoku tabeli. Ta metoda usuwa z kolejki istniejącą komórkę, jeśli jest dostępna, lub tworzy nową na podstawie poprzednio zarejestrowanej klasy lub pliku nib.
Ważne : Przed wywołaniem tej metody należy zarejestrować klasę lub plik nib przy użyciu metody registerNib: forCellReuseIdentifier: lub registerClass: forCellReuseIdentifier:.
Jeśli zarejestrowano klasę dla określonego identyfikatora i trzeba utworzyć nową komórkę, ta metoda inicjuje komórkę, wywołując jej metodę initWithStyle: reuseIdentifier:. W przypadku komórek opartych na końcówkach ta metoda ładuje obiekt komórki z dostarczonego pliku nib. Jeśli istniejąca komórka była dostępna do ponownego użycia, ta metoda wywołuje zamiast niej metodę prepaid komórki.
Oto jak cellForRowAtIndexPath
wygląda mój nowy po wdrożeniu nowych metod:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"cell_identifier";
[tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:cellIdentifier];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
return cell;
}
Kod, który mam do tej pory, działa dobrze, ale zawsze zwraca domyślny styl. Jak mogę to zmienić, więc mogę utworzyć komórki z innych stylów, takich jak UITableViewCellStyleDefault
, UITableViewCellStyleValue1
, UITableViewCellStyleValue2
i UITableViewCellStyleSubtitle
?
Nie chcę podklasy UITableViewCell
, chcę po prostu zmienić domyślny typ, tak jak mogłem to zrobić przed iOS 6. Wydaje się dziwne, że Apple zapewnia ulepszone metody, ale z minimalną dokumentacją wspierającą ich implementację.
Czy ktoś to opanował lub napotkał podobny problem? W ogóle staram się znaleźć jakiekolwiek rozsądne informacje.
UITableViewCell
celu uzyskania innych domyślnych stylów jest uciążliwa, ponieważ tworzy po prostu niepotrzebne pliki. Dziękuję za komentarz i potwierdzenie moich podejrzeń.