封装展示没有数据的tableview

首先先展示有数据的时候。
这里写图片描述

下面要展示的数据。

-(void)setUpTgData{
    // 1.获得plist的全路径
    NSString *path = [[NSBundle mainBundle] pathForResource:@"tgs.plist" ofType:nil];

    // 2.加载数组
    NSArray *dictArray = [NSArray arrayWithContentsOfFile:path];
    self.tgs =  [MJTg objectArrayWithKeyValuesArray:dictArray];
}

接下来把这句注掉

    self.tgs =  [MJTg objectArrayWithKeyValuesArray:dictArray];

这里写图片描述

好了 进入 正题了。
封装思路:

  1. 给tableView写一个分类,的实例方法
  2. 给该实例方法传一个没有数据的字符串,和一个数据源的个数(来判断有木有数据)
  3. 通过数据源的个数,来决定要不要横线。
- (void) tableViewDisplayWitMsg:(NSString *) message ifNecessaryForRowCount:(NSUInteger) rowCount
{
    if (rowCount == 0) {
        // 没有数据的时候,UILabel的显示样式
        UILabel *messageLabel = [UILabel new];
        messageLabel.text = message;
        messageLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
        messageLabel.textColor = [UIColor lightGrayColor];
        label居中
        messageLabel.textAlignment = NSTextAlignmentCenter;
        [messageLabel sizeToFit];

        self.backgroundView = messageLabel;
        没有横线
        self.separatorStyle = UITableViewCellSeparatorStyleNone;
    } else {
        self.backgroundView = nil;
        有横线
        self.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
    }
}

好了 那怎么用它呢?
直接在控制器里面的数据源方法里面。调用这个方法。

#pragma mark - 数据源方法
/**
 *  一共有多少行数据
 */
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    [tableView tableViewDisplayWitMsg:@"客官。没有数据" ifNecessaryForRowCount:self.tgs.count];
    return self.tgs.count;
}


效果图如下

这里写图片描述

这样就OK了
现在随便一个tableView都可以用它,只要在头文件里面倒入

#import "UITableView+JFNoDataLabel.h"

这个分类 大功告成。
2015 - 11 - 12 上海

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值