以前写过一篇文章:修改UITableView中Delete操作的默认按钮,这只是让默认的Delete按钮显示成了中文的删除按钮而已,如果想将这个删除按钮换成其他图片形式的,怎么办呢?
看一下下面的实现。
- -(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;
- }
- }
- }
效果图: