在tableView的编辑模式的多选模式开启:
self.tableView.allowsMultipleSelectionDuringEditing=YES;
使用reveal分析cell在插入模式的时候view的cell的视图,当进入插入编辑模式时,cell的subview有一个叫UITableViewCellEditControl的subview,这个代表添加按钮。可以修改该view达到修改添加按钮的位置,大小等属性。
可以根据结构发现,在UITableViewCellEditControl上有UIIMageView也就是类似于系统短信的多选的图片。
修改之前,系统默认的根据需求,自定这个选择的样式,例如更换图片之类,我们在自定义cell的时候重写layoutSubviews这个方法。
修改后结果- (void)layoutSubviews {
[super layoutSubviews];
for (UIControl*control in self.subviews) {
if ([control isMemberOfClass:NSClassFromString(@"UITableViewCellEditControl")]) {
for(UIView *v in control.subviews) {
if([v isKindOfClass: [UIImageView class]]) {
UIImageView *img = (UIImageView*)v;
if(self.selected) {//选择状态图片
img.image= [UIImage imageNamed:@"messageListEditSelect"];
}
else {//未选中状态图片
img.image= [UIImage imageNamed:@"messageListEditNormal"];
}
}
}
}
}
}
Table中的只要代理实现方法主要使用
- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath {
if(tableView.editing) {//在多行编辑选择样式
[self.deleteArray addObject:[self.dataArrayobjectAtIndex:indexPath.row]];
}
}
- (void)tableView:(UITableView*)tableView didDeselectRowAtIndexPath:(NSIndexPath*)indexPath {//在多行编辑取消选择样式
if(tableView.editing) {
[self.deleteArray removeObject:[self.dataArrayobjectAtIndex:indexPath.row]];
}
}
网友评论