在项目中我们经常会遇到tableviewcell多选的情况,但是因为cell复用,导致一个cell滑出界面后再返回的时候,cell的选中状态会消失,具体的解决办法 我们可以使用nsmutableset ,nsmutableset 和nsarray类似,有addObject: removeObject: 两种添加和移除数据的方法,这样在选中cell的时候我们可以将cell的indexPath或者cell上控件的tag值加入nsmutableset中,在cell复用的时候通过containsObject:这个方法来判断是否给cell赋上选中状态.下面是大致的实现方法.
#pragma mark – 返回每一行显示的内容(每一行显示怎样的cell)
– (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
ShoppingCartTableViewCell *cell = (ShoppingCartTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@”ShoppingCartTableViewCell”];
if (cell == nil) {
cell = [[[NSBundle mainBundle] loadNibNamed:@”ShoppingCartTableViewCell” owner:self options:nil] lastObject];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
// cell.numberTextField.text = @”111″;
}
GoodCartInfoModel *model = dataArray[indexPath.row];
[cell addTheValue:model];
cell.delegate = self;
cell.selectButton.tag = 100 + indexPath.row;
cell.selectButton.selected = NO;
[cell.selectButton addTarget:self action:@selector(selectButtonClick:) forControlEvents:(UIControlEventTouchUpInside)];
if ([btnStatusSet containsObject:[NSString stringWithFormat:@”%d”,(100 + indexPath.row)]]) {
cell.selectButton.selected = YES;
[cell.selectButton setImage:[UIImage imageNamed:@”btn_select_default”] forState:(UIControlStateNormal)];
}
return cell;
}
-(void)selectButtonClick:(UIButton *)btn
{
if (btn.selected == NO) {
btn.selected = YES;
[btnStatusSet addObject:[NSString stringWithFormat:@”%d”,btn.tag]];
}else
{
btn.selected = NO;
[btnStatusSet removeObject:[NSString stringWithFormat:@”%d”,btn.tag]];
}
}
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级