试了很多方法也没解决,请高手帮忙看看啊。
在我滚动cellForRowAtIndexPath的时候,在tableView添加和删除选中标记,不知道为什么。
// Configure the cell...
cell.textLabel.text = [currencyList objectAtIndex:indexPath.row];
// Check to see what currency is currently selected and checkstyle
if ([selectedCurrency isEqualToString:cell.textLabel.text]) {
// Add a tick to the selected row
cell.accessoryType = UITableViewCellAccessoryCheckmark;
// Change the text colour
cell.textLabel.textColor = [UIColor colorWithRed:0 green:0 blue:0.5 alpha:1];
self.checkedIndexPath = indexPath;
} else {
UITableViewCell *uncheckCell = [self.tableView
cellForRowAtIndexPath:self.checkedIndexPath];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;
// Change the font colour back to black
uncheckCell.textLabel.textColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1];
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
不需要uncheck cellForRowAtIndexPath
中的cell
,只要重载选中的cell
就OK
了。
- (void)setCheckedIndexPath:(NSIndexPath *)indexPath
{
NSIndexPath *uncheckIndexPath = self.checkedIndexPath;
_checkedIndexPath = indexPath;
[self.tableView reloadRowsAtIndexPaths:@[uncheckIndexPath]
withRowAnimation:UITableViewRowAnimationLeft];
}
再修改cellForRowAtIndexPath
。需要注意,设置UITableViewCellAccessoryNone
是给需要返回的cell
。
// Configure the cell...
cell.textLabel.text = [currencyList objectAtIndex:indexPath.row];
// Check to see what currency is currently selected and checkstyle
if ([selectedCurrency isEqualToString:cell.textLabel.text]) {
// Add a tick to the selected row
cell.accessoryType = UITableViewCellAccessoryCheckmark;
// Change the text colour
cell.textLabel.textColor = [UIColor colorWithRed:0 green:0 blue:0.5 alpha:1];
self.checkedIndexPath = indexPath;
} else {
//If cell unchecked
cell.accessoryType = UITableViewCellAccessoryNone;
// Change the font colour back to black
cell.textLabel.textColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1];
}