IOS问题汇总:2014-12-17 确定UITableViewCell AccessoryCheckmark唯一性+不唯一性

本文介绍如何在UITableView中实现UITableViewCellAccessoryCheckmark的唯一性和非唯一性选择效果。通过不同方法实现点击单元格时选中状态的变化,并保持选中状态的唯一性,包括改变背景颜色和不改变背景颜色两种情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

确定UITableViewCell AccessoryCheckmark唯一性

a)点击背景会变蓝色

-(UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.row==currentIndex){
return UITableViewCellAccessoryCheckmark;
}
else{
return UITableViewCellAccessoryNone;
}
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:NO];
if(indexPath.row==currentIndex){
return;
}
NSIndexPath *oldIndexPath = [NSIndexPath indexPathForRow:currentIndex
inSection:0];
UITableViewCell *newCell = [tableView cellForRowAtIndexPath:indexPath];
if (newCell.accessoryType == UITableViewCellAccessoryNone) {
newCell.accessoryType = UITableViewCellAccessoryCheckmark;
newCell.textColor=[UIColor blueColor];
}
UITableViewCell *oldCell = [tableView cellForRowAtIndexPath:oldIndexPath];
if (oldCell.accessoryType == UITableViewCellAccessoryCheckmark) {
oldCell.accessoryType = UITableViewCellAccessoryNone;
oldCell.textColor=[UIColor blackColor];
}
currentIndex=indexPath.row;
}
b)点击背景不会蓝色

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if(seletedRow == [indexPath row])
return;

seletedRow = [indexPath row];

[self.tableView reloadData];
}

-(UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath
{
int row = [indexPath row];
if(row == select)
return UITableViewCellAccessoryCheckmark;
return UITableViewCellAccessoryNone;
}

UITableViewCell AccessoryCheckmark 不唯一性

if (cell.accessoryType == UITableViewCellAccessoryNone)
cell.accessoryType = UITableViewCellAccessoryCheckmark;
else
cell.accessoryType = UITableViewCellAccessoryNone;

转载于:https://www.cnblogs.com/hanyutong/p/4425181.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值