下面的函數開始創建從零到n的單元格,並從模型中檢索內容。我在表格中有幾個單元格,其中有靜態內容,我希望函數在下面忽略它們,並從第n
開始插入新數據。我將如何做到這一點?換句話說,我該如何返回已存在的單元格n
?iOS更改表格視圖中的特定單元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
下面的函數開始創建從零到n的單元格,並從模型中檢索內容。我在表格中有幾個單元格,其中有靜態內容,我希望函數在下面忽略它們,並從第n
開始插入新數據。我將如何做到這一點?換句話說,我該如何返回已存在的單元格n
?iOS更改表格視圖中的特定單元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
方法tableView:cellForRowAtIndexPath
需要用於滾動,因爲的tableView不加載的所有單元在一次。
如果你想重新加載你的tableView的一部分,你可以使用方法reloadRowsAtIndexPaths:withRowAnimation:
或reloadSections:withRowAnimation:
。這將僅重新加載指定的單元格。
如果您有性能問題,並且不希望在每次tableView滾動時加載靜態單元格,則可以在創建它們後將它們存儲在屬性中,並且只返回它們。它看起來有點像這樣:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
switch (indexPath.row) {
case 0:
//Static cell
if (self.staticCell == nil) {
self.staticCell = [UITableViewCell new]; //Instantiate properly here
//Customize cell
}
return self.staticCell;
break;
case 1:
// Other cells normally
break;
}
}
實際上,我需要防止先改變幾個單元格,然後再填充一些內容,但似乎我會用交換功能重新填充它們。 –
如果單元格已經創建好了,它只會在方法中返回,它根本不會被修改。如果該屬性爲零,該方法將僅填充單元格。如果它不是唯一的返回。 – pedros
好的,我對達到已經創建的單元格感到困惑,但我們將它們定義爲屬性。現在沒問題。 –
在僞代碼:
if (indexPath.row == 0)
return some static cell;
else if (indexPath.row == 1)
return some other static cell;
else
configure cell N with data[N-2];
我已經有了一些內容的這些單元格,所以我不想返回新的單元格。 –
可以忽略所需的細胞內 - (UITableViewCell的*)的tableView:(UITableView的*)的tableView的cellForRowAtIndexPath:(NSIndexPath *)indexPath檢查indexPath.section和indexPath.row – Dimentar