• 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
    
  • 相关阅读:
    抽象工厂学习笔记
    SQL Transcation的一些总结
    享元模式(Flyweight)
    编程语言简史
    代理模式(Proxy)
    打造属于你的提供者(Provider = Strategy + Factory Method)
    打造属于你的加密Helper类
    单例模式(Singleton)的6种实现
    在C#中应用哈希表(Hashtable)
    InstallShield脚本语言的编写
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/10095146.html
Copyright © 2020-2023  润新知