您的位置:首页 > 其它

表格进行多选编辑时,如何让一部分cell支持勾选,一部分不支持

2015-09-06 17:35 381 查看
原理大致如下,

对editingStyleForRowAtIndexPath 对相应的cell进行相应的属性设置

[objc] view
plaincopy

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath

{

CourseModel *model = _dataArray[indexPath.section];

if (model.nLockStatus != 0)

return UITableViewCellEditingStyleDelete|UITableViewCellEditingStyleInsert;

else

return UITableViewCellEditingStyleNone;

}

通过此处后,可以发现有些cell在编辑下已经没有了相应的样式,但此时还有一个问题,当处于编辑时,cell的最左侧始终有一块白的区域。。。。如下图,



解决以上问题原理如下,当tableview处于编辑时,其下的cell会调用layoutSubviews重新进行界面布局,所以我们只需要在这里面进行相应处理即可,所以我们通过重写UITableViewCell子类的layoutSubviews即可实现上述需求

[objc] view
plaincopy

XXXUITableViewCell.m

[objc] view
plaincopy

-(void)layoutSubviews

{

[super layoutSubviews];

if (_model.nLockStatus == 0)

{

CGRect frame = self.contentView.frame;

frame.origin.x = 0;

self.contentView.frame = frame;

}

}

[objc] view
plaincopy

最终实现效果如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: