美文网首页
方法交换

方法交换

作者: zzL丶 | 来源:发表于2019-12-12 10:52 被阅读0次

交换tableview reloadData 方法实现空数据提示

static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        Method oldMethod = class_getInstanceMethod(self, @selector(reloadData));
        Method newMethod = class_getInstanceMethod(self, @selector(lz_reloadData));
        method_exchangeImplementations(oldMethod, newMethod);
    });
- (void)lj_reloadData {
    [self lj_reloadData];
    [self filColor];
}
- (void)filColor {
    id<UITableViewDataSource> dataSource = self.dataSource;
    NSInteger section = [dataSource respondsToSelector:@selector(numberOfSectionsInTableView:)] ? [dataSource respondsToSelector:@selector(numberOfSectionsInTableView:)] : 1;
    NSInteger row = 0;
    for (NSInteger i = 0; i < section; i++) {
        row += [dataSource tableView:self numberOfRowsInSection:i];
    }
    if (row > 0) {
        self.backgroundColor = [UIColor redColor];
    }else {
        self.backgroundColor = [UIColor whiteColor];
    }
}

相关文章

  • iOS 方法交换

    交换类方法 交换实例方法

  • iOS -- runtime的应用

    runtime主要有一下几种应用场景 方法交换 添加属性 (一)方法交换 (1)字体适配 方法交换实际交换的是方法...

  • iOS 方法交换 method_exchangeImplemen

    方法交换 使用方法交换需要注意些什么呢 1、在交换系统方法后要注意结束前调用本方法,也就是执行系统方法 2、再交换...

  • OC runtime 底层API解析

    关于class的API 交换方法API 替换方法的实现 交换方法的实现

  • 交换方法

    利用runtime可以修改系统的方法实现,这种方式无任何侵入性,因此也是很多第三方常用的技术。它的解决具有全局性;...

  • 方法交换

    +(void)load load当类加载进内存的时候调用,而且不管有没有子类,都只会调用一次。在main函数之前调...

  • 交换方法

  • 交换方法

    几个函数 一、选择合适的时机,交换方法 二、替换方法内部使用注意

  • 交换方法

    // //ViewController.m //CocoTest_1 // //Created by S u p ...

  • 方法交换

    交换tableview reloadData 方法实现空数据提示

网友评论

      本文标题:方法交换

      本文链接:https://www.haomeiwen.com/subject/pubzgctx.html