我正在開發一個具有UITableView
和定製UITableViewCells
的應用程序。單元格包含複選框和3個標籤。用戶可以通過點擊複選框來選擇多行。當我選擇多行並滾動表格視圖時,選中標記從複選框中消失。這意味着所選行被更改爲未選模式。這可以如何解決?在UITableView中滾動定製單元格
0
A
回答
1
我認爲您的問題可能與單元重用有關。創建你的控制器的NSMutableDictionary
(應該是和實例變量),並且像這樣創建:
dictionary = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
[NSNumber numberWithBool:NO], [NSIndexPath indexPathForRow:0 inSection:0],
[NSNumber numberWithBool:NO], [NSIndexPath indexPathForRow:1 inSection:0], nil];
這樣做對所有的行,或者如果需要的話,計算行及其索引,但設置它們的所有對象到[NSNumber numberWithBool:NO
。
現在,tableView:didSelectRowAtIndexPath:
if ([(NSNumber *)[dictionary objectForKey:indexPath] isEqualToNumber:[NSNumber numberWithBool:NO]) {
[dictionary setObject:[NSNumber numberWithBool:YES] forKey:indexPath];
// Do any visual updating necessary
} else {
[dictionary setObject:[NSNumber numberWithBool:NO] forKey:indexPath];
// Do any visual updating necessary
}
現在,我們有存儲單元是否被選中與否的一種方式,改變你的小區標識,爲您的電池工作:
NSString *identifier = [[dictionary objectForKey:indexPath] stringValue];
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier] autorelease];
}
// Do any visual updating necessary
return cell;
現在,更新您的自定義單元類以接受@"0"
和@"1"
作爲標識符,並根據此輸入自動更新其選定狀態。
0
我猜測這是因爲細胞正在被重新使用。這意味着cellForRowAtIndex:在單元格回滾到視圖時被調用。複選框默認爲未選模式。將複選框的狀態存儲在一個數組中,並將單元格的複選框狀態設置爲
相關問題
- 1. UITableView按單元格滾動單元格
- 2. UITableView的自定義單元格滾動
- 3. UITableView在滾動上重複單元格
- 4. UITextField在UITableView中滾動時清除 - 自定義單元格
- 5. 設置滾動最後UItableview單元格
- 6. 滾動時UITableView單元格變空白
- 7. UITableView添加新單元格時滾動
- 8. UITableView滾動非常大的單元格
- 9. tvOS UITableView滾動到單元格
- 10. UITableView不滾動第一個單元格
- 11. 單元格圖像更改滾動UITableView
- 12. 重複單元格,同時滾動uitableview
- 13. UITableView當單元格滾動到頂部時,單元格將固定在頂部
- 14. 定製UITableView滾動!
- 15. UITableView滾動時爲單元格製作動畫
- 16. UITableView自定義單元格在嘗試滾動時消失
- 17. 使用固定的「Header」在UITableView上滾動單元格
- 18. 無法保存滾動,因此UITableview中的UITableView單元格
- 19. 強制UITableView滾動到單元格頂部
- 20. 單元格動畫,uitableview單元格
- 21. iOS在UITableView中定製滾動條
- 22. 在Uitableview單元格中複製?
- 23. 當在UITableview中滾動時,單元格發生變化
- 24. 在滾動之前加載UITableView中的所有單元格
- 25. 定製單元格遇到問題UITableView
- 26. 滾動時自定義單元格重新加載問題UITableView
- 27. 幾個UITableView的自定義單元格。不工作滾動
- 28. 使用自定義單元格滾動UITableView時提高性能
- 29. UITableView滾動到導航後選定的單元格
- 30. UITableView自定義單元格,滾動和內存管理
請發表您的代碼爲tableView:cellForRowAtIndexPath: – Denis