2017-03-09 229 views
0

的數目有限的I有一個UITableView±10不同UITableViewCells以顯示有關的對象(描述細胞,細胞的照片等)的全部信息。所以當加載UITableView時,我不需要UITableView單元重新使用。會不會表現更好,如果我以某種方式存儲UITableViewCells和防止cellForRowAtIndexPath被稱爲?如果是這樣,那麼實現相似行爲的方式是什麼?的UITableView與細胞

+0

沒有可用於tableviewController靜態細胞檢查類似的情況。做一些RND。 –

回答

1

首先,你不能阻止的cellForRowAtIndexPath的,如果你要使用的UITableView被調用。它是一個UITableViewDataSource函數,它不是可選的。否則,你將無法填充你的tableview。

你可以做的是對的cellForRowAtIndexPath indexpath.row使用開關的情況下,返回必要細胞。

+0

yeap。這就是我如何做到這一點,問題是如果以某種方式存儲單元而不是重用,滾動性能會更好。 – JuicyFruit

+1

除非您在顯示單元格或進行任何網絡調用時執行一些複雜的操作,否則應該會影響性能。並且只有在tableview中的兩個不同位置/ indexpath中調用同一個單元格時,單元格纔會被重用,這將無法同時顯示(不滾動)。 – rv7284

+0

評論是一個答案,謝謝。 – JuicyFruit

0

您可以通過在故事板增加原型細胞嘗試。每個單元格分配新的單元標識符,並且您需要保持與故事板的索引匹配的標識符數組。

你的cellForRowAtIndexPath將減少到:

- (UITableViewCell *)tableView:(UITableView *)tableView1 cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    UITableViewCell *cell = [tableView1 dequeueReusableCellWithIdentifier:[cellIdArray objectAtIndex:indexPath.row] forIndexPath:indexPath]; 

    return cell; 
} 

注:的cellForRowAtIndexPath方法將總是被調用。在上述情況下,您可以將自己的數據放入故事板本身。 在https://www.appcoda.com/sidebar-menu-swift/