Jeśli rozumiem Twoje pytanie, to jest wyjaśnienie szukasz:
Prototype (ponownego wykorzystania):
Podczas korzystania komórki dynamiczne, należy użyć komórki Prototype. Oznacza to, że albo w IB, albo w twoim kodzie, tworzysz instancję UITableViewCell
i nadajesz jej identyfikator (reuseIdentifier
). Urządzenie UITableView
używa tego prototypu do generowania tylu komórek (wierszy), ile potrzebujesz. UITableView
twórz (i korzystaj z pamięci) tyle komórek, ile potrzeba, aby wypełnić ekran. Po niektóre z tych komórek zgaśnie ekranie UITableView
ponownie wykorzystuje im - przetwarza im.
Można zdefiniować więcej niż jeden prototyp komórkę w UITableView
. Chodzi o to, że każdy prototyp służy innym celom. Na przykład można zdefiniować prototypową komórkę, która ma tylko jedną dużą wartość UILabel
, a jej celem jest wykorzystanie tekstu statycznego. Definiujesz kolejny prototyp, który ma tylko jeden prototyp UIImageView
. To zależy od twojego projektu i sposobu wyświetlania twoich danych.
Aby użyć komórki prototypowych, w IB, należy użyć dynamiczne prototypy komórek, i ustawić identifier
. Następnie trzeba wdrożyć UITableViewDataSource
metod, takich jak:
– tableView:numberOfRowsInSection:
– tableView:cellForRowAtIndexPath:
Te metody są metodami delegat UITableView.
Jeśli nie używa się IB, można utworzyć komórki w – tableView:cellForRowAtIndexPath:
sposobem:
UITableViewCell * komórek = [[UITableViewCell Alloc] initWithStyle (UITableViewCellStyle) Typ reuseIdentifier (NSString *) reuseIdentifier];
Static:
Pomysł komórek statycznych jest właśnie prostota. Możesz użyć komórek prototypowych (na przykład tylko jednego prototypu) i podać statycznie NSArray
, na przykład jako źródło danych. Aby wykonać zadanie polegające na wdrożeniu metod UITableViewDataSource
, firma Apple wprowadziła komórki statyczne, w których wykorzystano tylko scenorys i IB. W IB wybieramy widok tabeli i zamiast tego wybierzmy i wpisujemy tekst lub ustawiamy obraz. Nie chcesz dokonywać żadnych dynamicznych zmian w komórkach statycznych później, gdy aplikacja jest uruchomiona, ponieważ nie jest przeznaczona do tego celu, a będziesz musiał wdrożyć wiele innych metod, które nie są tego warte. Chociaż nie jest to dużo pracy, aby uzyskać indexPath
z wybranego wiersza, ale pomysł jest taki, że jeśli chcesz wypchnąć nowy widok z zaznaczenia komórki statycznej, użyjesz segues zamiast implementować dowolny kod.
Jeśli używasz komórek statycznych, nie powinieneś implementować metody UITableViewDataSource
, w przeciwnym razie aplikacja ulega awarii i na odwrót, jeśli nie użyjesz metod UITableViewDataSource
(wymaganych) podczas korzystania z komórek prototypowych, Twoja aplikacja ulegnie awarii.
Czy możesz udostępnić ślad stosu? – sosborn