自定义UITableViewCell上的delete按钮
2013-02-27 11:31
274 查看
1.通过UITableViewDelegate方法可以实现删除 tableview中某一行
//滑动删除-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
NSUInteger row = [indexPath row];
[bookInforemoveObjectAtIndex:row];//bookInfo为当前table中显示的array
[tableView deleteRowsAtIndexPaths:[NSArrayarrayWithObject:indexPath]withRowAnimation:UITableViewRowAnimationLeft];
}
此时删除按钮为Delete,如果想显示为“删除” 中文的话,则需要实现UITableViewDelegate中的- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath方
[plain] view
plaincopy
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{
return @"删除";
}
或者,最简单的方式,将plist中的Localization native development region改为China即可
2.这只是让默认的Delete按钮显示成了中文的删除按钮而已,如果想将这个删除按钮换成其他图片形式的,怎么办呢?
[cpp] viewplaincopy
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *RootViewControllerCell = @"RootViewControllerCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:RootViewControllerCell];
if(cell == nil)
{
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:RootViewControllerCell]autorelease];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage:[UIImage imageNamed:@"delete.png"] forState:UIControlStateNormal];
[button setFrame:CGRectMake(280, 10, 30, 30)];
[button addTarget:self action:@selector(del:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:button];
}
cell.textLabel.text = [array objectAtIndex:[indexPath row]];
cell.tag = [indexPath row];
NSArray *subviews = [cell.contentView subviews];
for(id view in subviews)
{
if([view isKindOfClass:[UIButton class]])
{
[view setTag:[indexPath row]];
[cell.contentView bringSubviewToFront:view];
}
}
return cell;
}
-(void)del:(UIButton *)button
{
NSArray *visiblecells = [self.table visibleCells];
for(UITableViewCell *cell in visiblecells)
{
if(cell.tag == button.tag)
{
[array removeObjectAtIndex:[cell tag]];
[table reloadData];
break;
}
}
}
效果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/08/686e69ad289e5cd91c5a05c8cdfde793.jpg)
相关文章推荐
- 自定义UITableViewCell上的delete按钮
- 自定义UITableViewCell上的delete按钮
- 自定义UITableViewCell 的delete按钮
- 自定义UITableViewCell上的delete按钮
- 自定义UITableViewCell上的delete按钮
- 自定义UITableViewCell上的delete按钮
- 自定义UITableViewCell 上按钮点击事件处理
- 修改UITableViewCell左滑删除按钮的样式和自定义
- UITableViewCell上的删除按钮(tableView自带的和自定义的)
- 如何得到自定义UITableViewCell中的按钮所在的cell
- 如何得到自定义UITableViewCell中的按钮所在的cell的indexPath.row
- iOS开发-UI控件:自定义UITableViewCell 上的多个按钮点击事件处理
- 使用xib 自定义UITableViewCell 按钮无法点击事件
- 如何得到自定义UITableViewCell中的按钮所在的cell的indexPath.row
- iOS 自定义UITableViewCell上添加UIButton按钮如何确定点击了哪一行,代码块实现
- 自定义Tableview 右滑自带的 Delete按钮
- 自定义UITableViewCell上的按钮点击事件处理
- 自定义UITableViewCell上的删除按钮
- iOS 自定义UITableViewCell上添加UIButton按钮实现选中的是哪个按钮对应的cell,用代理实现。
- iOS 自定义UITableViewCell上添加UIButton按钮如何确定点击了哪一行,代码块实现