Chciałbym, aby mój NSTableview oparty na widoku nie używał ponownie wygenerowanych wcześniej widoków TableCellView, które są przewijane poza zakresem. Sądzę, że byłoby to możliwe z UITableView przez nadpisanie dequeueReusableCellWithIdentifier: by zwrócić zero. Ist istnieje podobne rozwiązanie dla NSTableView?Jak NSTableView nie używać ponownie TableCellViews
-
Moj Tło: Mam dość skomplikowany view-Based-tableView związany ManagedObjects w zwykły sposób (czyli zawartość tabeli, -Wybór i -sortdescriptor są zobowiązane do tych elementów arraycontroller tableCellView-a powiązanie z objectValue).
Tabela ma około 20 kolumn, ale maksymalnie 400 wierszy. Przewijanie jest bardzo powolne, ale profilowanie czasowe wskazuje, że nie istnieje jedno wolne powolne działanie (największe pojedyncze wywołanie metody zajmuje około 5% czasu). Po buforowaniu pochodnych/niestandardowych właściwości mojego ManagedObject bez większego zwiększenia wydajności, próbuję teraz buforować widoki (aby uniknąć częstego ponownego wiązania widoków tablecells, gdy widok wchodzi w zakres).
W tej chwili próbuję nie wiązać zawartości tabeli, ale uzyskać moje widoki za pomocą protokołu NSDatasource. W tym celu należy wstawić buforowane widoki TableCellView, jeśli istnieją. W przeciwnym razie utwórz nowy pośrednictwem
[self.table makeViewWithIdentifier:... owner:self];
Od makeViewWithIdentifier może powrócić widoki, które już są buforowane przez mnie, tabela-content dostaje pomieszane z niewłaściwych komórek.
Wydajność jest znacznie lepiej z tym podejściem ...
-
Inne pomysły dotyczące tworzenia przewijania bardziej wydajnych również appriciated.
Chciałbym wiedzieć, czy masz gdziekolwiek z tym. Myślę, że mam przeciwny problem, ponieważ mój NSTableView * nie * ponownie używa komórek z jakiegoś powodu. Próbowałem PXListView, ale miało to gorszą wydajność i dużo błędów, więc chciałbym trzymać się NSTableView, ale opracowałem, jak zrobić widoki z pamięci podręcznej, które, jak sądzę, powinny robić. Jeśli chodzi o twój problem, czy byłbyś w stanie stworzyć niepowtarzalny identyfikator dla każdego widoku, czy może to spowodować straszliwe zużycie pamięci? – danpalmer