2013-02-25 7 views
6

wiem, że nie można ponownie wykorzystać komórki przez nie wywołanie tej metody:Jak mogę używać ponownie komórkę ale przy użyciu prototypu Celi Identifier

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SomeID"] 

na podstawie opisu dostępnego here.

Ale co, jeśli używam komórki prototypowej?

Ponieważ jeśli nie określiłem identyfikatora mojej prototypowej komórki, mój widok tabeli pokazuje tylko puste komórki.

+0

Czy możesz wyjaśnić, dlaczego nie chcesz ponownie używać komórek? – Caleb

+2

Dzięki za odpowiedź, nie chcę ponownie używać komórek, ponieważ stworzyłem prototypową komórkę z polem tekstowym, a kiedy uruchomię swoją aplikację i napiszę coś w polu tekstowym, otrzymałem zduplikowany tekst w innych komórkach. Uwaga: Moje tableview ma nie więcej niż 10 komórek, więc nie sądzę, że wydajność będzie problemem, jeśli nie będę używał ponownie komórek – user2034350

+0

, co masz na myśli, "jeśli nie określiłem identyfikatora mojej prototypowej komórki"? –

Odpowiedz

0

Powinieneś zresetować wszystkie rzeczy, z którymi masz do czynienia w swojej metodzie, zaraz po wyciągnięciu komórki z pamięci podręcznej.

A następnie kontynuować konfigurację sprzedaży dla określonego indeksu. na przykład:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SomeID"]; 
if(cell) 
{ 
    cell.textLable.text = nil; 
    cell.accessoryItem = nil; 
    ... 
} 

if(haveSomeText){ 
    cell.textLable.text = [allMyTexts objectForIndex:index]; 
} 
if(needSetButton){ 
    cell.accessoryItem = [[UIButton alloc] init ...]]; 
} 
... 
Powiązane problemy