• 自定义UITableViewCell 的delete按钮


    自定义UITableViewCell上的delete按钮

    滑动列表行(UITableViewCell)出现删除按钮时,默认是英文“delete”,这份代码片段能够将“delete”变成中文”删除“,甚至可以自定义删除按钮的形状。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    //通过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方法*/
     
    - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{   
        return @"删除";   
    }   
    //或者,最简单的方式,将plist中的Localization native development region改为China即可
     
    //这只是让默认的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;   
            }   
        }   
    }
  • 相关阅读:
    集成学习值Adaboost算法原理和代码小结(转载)
    集成学习原理小结(转载)
    2019阿里校招测评题,光明小学完全图最短路径问题(python实现)
    第八节、图片分割之GrabCut算法、分水岭算法
    Scala2.11.8 spark2.3.1 mongodb connector 2.3.0
    spark 实现动态日期读取
    Idea 201601注册码
    linux下的crontab服务
    spark MySQL jar 包
    scala 日期格式转换
  • 原文地址:https://www.cnblogs.com/cocoajin/p/3176554.html
Copyright © 2020-2023  润新知