我有一個UITableView,有些單元格在視圖初始化時用UITableViewCellAccessoryCheckmark標記。UITableViewCell:如何驗證所有單元中的accessoryType類型?
當用戶選擇另一行時,我必須檢查之前是否達到了所選行的最大數量。要做到這一點,我使用的代碼波紋管:
- (NSInteger)tableView:(UITableView *)tableView numberOfSelectedRowsInSection:(NSInteger)section{
NSInteger numberOfRows = [self tableView:tableView numberOfRowsInSection:section];
NSInteger numberOfSelectedRows = 0;
for (int i = 0; i < numberOfRows; i++) {
UITableViewCell *otherCell = [tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:section]];
if (otherCell.accessoryType == UITableViewCellAccessoryCheckmark) {
numberOfSelectedRows++;
}
}
return numberOfSelectedRows;
}
如果我的行數,爲例,20,變量numberOfRows正確與20設置好的比方說,有13個行已經標有UITableViewCellAccessoryCheckmark。因此,numberOfSelectedRows在循環之後應該爲13,但只考慮標記的和可選的單元格。因此,如果我顯示了9個單元格並標記了7個單元格,則numberOfSelectedRows會返回7而不是13(但按預期爲迭代20次)。
這是UITableView的正確行爲,還是iPhone模擬器的錯誤?
在此先感謝。