zoukankan      html  css  js  c++  java
  • OC,UITableView侧滑删除

    做侧滑的时候发现一个问题,当一个UITableView的cell有的有侧滑,有的没有,当用editActionsForRowAtIndexPath方法的时候发现有点问题,查看了下api,需要用到canEditRowAtIndexPath这个方法

    #import "SkidSidewaysViewController.h"
    
    @interface SkidSidewaysViewController ()<UITableViewDelegate,UITableViewDataSource>
    @property(nonatomic,strong)NSMutableArray *dataArr;
    @property(nonatomic,strong)UITableView *tableView;
    @end
    
    @implementation SkidSidewaysViewController
    #define Identifier @"cell"
    -(NSMutableArray *)dataArr{
        if(!_dataArr){
            _dataArr = [NSMutableArray array];
            for(int i=0;i<20;i++){
                [_dataArr addObject:[NSString stringWithFormat:@"%d",arc4random()%3]];
            }
        }
        return _dataArr;
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        self.tableView = [[UITableView alloc]initWithFrame:self.view.bounds];
        [self.view addSubview:self.tableView];
        self.tableView.delegate = self;
        self.tableView.dataSource = self;
        [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:Identifier];
    }
    #pragma mark UITableViewDelegate,UITableViewDataSource
    -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
        return self.dataArr.count;
    }
    -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:Identifier forIndexPath:indexPath];
        cell.textLabel.text = self.dataArr[indexPath.row];
        return cell;
    }
    //判断是否有侧滑
    -(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
        if([self.dataArr[indexPath.row] isEqualToString:@"0"]){
            return NO;
        }
        return YES;
    }
    //判断侧滑按钮一共有几个
    - (nullable NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{
        NSMutableArray *acitonArr = [NSMutableArray array];
        for(int i=0;i<[self.dataArr[indexPath.row] intValue];i++){
            UITableViewRowAction *action = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:[NSString stringWithFormat:@"%d",i] handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
                
            }];
            action.backgroundColor = [UIColor redColor];
            [acitonArr addObject:action];
        }
        
        
        return acitonArr;
    }
    @end
    
  • 相关阅读:
    ida动态调试--反反调试
    python读取配置文件
    问题解决:局域网内,为啥别人ping不到我的IP
    完全卸载MySQL
    JDK环境配置
    win10无法运行Vmware,怎么办
    查看ie版本
    公开的免费WebService接口分享,用于做接口练习
    SVN更改地址
    Loadrunner录制步骤及说明
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/10095146.html
Copyright © 2011-2022 走看看