自定义UITableViewCell上的delete按钮

来源:互联网 发布:mac系统丢失 编辑:程序博客网 时间:2024/05/14 15:23

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
  1. - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{    
  2.     return @"删除";    
  3. }    
或者,最简单的方式,将plist中的Localization native development region改为China即可

2.这只是让默认的Delete按钮显示成了中文的删除按钮而已,如果想将这个删除按钮换成其他图片形式的,怎么办呢?

[cpp] view plaincopy
  1. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath    
  2. {    
  3.     static NSString *RootViewControllerCell = @"RootViewControllerCell";    
  4.     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:RootViewControllerCell];    
  5.     if(cell == nil)    
  6.     {    
  7.         cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:RootViewControllerCell]autorelease];    
  8.             
  9.         UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];    
  10.         [button setBackgroundImage:[UIImage imageNamed:@"delete.png"] forState:UIControlStateNormal];    
  11.         [button setFrame:CGRectMake(280, 10, 30, 30)];    
  12.         [button addTarget:self action:@selector(del:) forControlEvents:UIControlEventTouchUpInside];    
  13.         [cell.contentView addSubview:button];           
  14.     }    
  15.         
  16.     cell.textLabel.text = [array objectAtIndex:[indexPath row]];    
  17.     cell.tag = [indexPath row];    
  18.         
  19.     NSArray *subviews = [cell.contentView subviews];    
  20.     for(id view in subviews)    
  21.     {    
  22.         if([view isKindOfClass:[UIButton class]])    
  23.         {    
  24.             [view setTag:[indexPath row]];    
  25.             [cell.contentView bringSubviewToFront:view];    
  26.         }    
  27.     }    
  28.     return cell;    
  29. }    
  30.     
  31. -(void)del:(UIButton *)button    
  32. {    
  33.     NSArray *visiblecells = [self.table visibleCells];    
  34.     for(UITableViewCell *cell in visiblecells)    
  35.     {    
  36.         if(cell.tag == button.tag)    
  37.         {    
  38.             [array removeObjectAtIndex:[cell tag]];    
  39.             [table reloadData];    
  40.             break;    
  41.         }    
  42.     }    
  43. }    

效果如下:

原创粉丝点击