Tworzę komórkę tabeli raz, ponieważ jest to powolny proces ze względu na wszystkie obrazy w komórce. Bardzo rzadko coś się zmienia, ale jest rzadki przypadek, w którym chcę całkowicie komórki.

Kod, który pobiera komórkę, to

UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:PlaceholderCellIdentifier];

Jeśli nie ma powiązanej komórki, tworzę ją.

    UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:PlaceholderCellIdentifier];


if (cell == nil)
{
    //create cell
    return cell;
}
else
{
    return cell;
}

Czy istnieje sposób na zrzucenie wszystkich komórek wielokrotnego użytku, które są skojarzone z tą tabelą? Więc kiedy dzwonię

[table reloadData];

Wygeneruje świeży zestaw komórek?

Wielkie dzięki, -Kod

0
user440096 28 sierpień 2012, 18:36

2 odpowiedzi

Najlepsza odpowiedź

Według tej odpowiedzi możesz. Jednak zdecydowanie odradzam. Wtrącanie się do wewnętrznych klas to zła praktyka.

Poza tym nie rozumiem, dlaczego miałbyś to robić. Ponowne wykorzystanie komórek ma na celu faktyczne przyspieszenie procesu i ograniczenie używanej pamięci. Nie widzę, jak tworzenie komórki od podstaw może być szybsze niż ponowne jej użycie.

1
Community 23 maj 2017, 14:53

Po prostu użyj ponownie istniejących komórek. Nie ma potrzeby cofania istniejących.

Chyba chciałeś zadać pytanie inaczej. Możesz zapytać, jak wymusić na widoku tabeli ponowne wyświetlanie każdej komórki ze zaktualizowanymi danymi ... ? Jeśli tak, to odpowiedź brzmi: zadzwoń

[self.tableView reloadData];

(zakładając, że umieścisz wywołanie w kontrolerze widoku tabeli)

1
Hermann Klecker 28 sierpień 2012, 18:58