為tableview和collectionView添加數(shù)據(jù)為空的提示

簡單有效的為UITableView和collectionView添加數(shù)據(jù)為空的提示

給UITableView添加一個如下分類,在數(shù)據(jù)源方法里面調(diào)用。

UITableView+EmptyData.h文件

#import <UIKit/UIKit.h>

@interface UITableView (EmptyData)
//添加圖片和文字
- (void)tableViewDisplayWitMsg:(NSString *)message andImage:(NSString *) image forRowCount:(NSUInteger) rowCount;
//添加文字
- (void)tableViewDisplayWitMsg:(NSString *) message ifNecessaryForRowCount:(NSUInteger) rowCount;

@end

UITableView+EmptyData.m文件

#import "UITableView+EmptyData.h"

@implementation UITableView (EmptyData)

- (void)tableViewDisplayWitMsg:(NSString *)message andImage:(NSString *)image forRowCount:(NSUInteger)rowCount
{
    if (rowCount == 0) {
        
        UIView *backView = [[UIView alloc]initWithFrame:self.backgroundView.frame];
        UIImageView *imageView = [[UIImageView alloc] init];
        imageView.image = [UIImage imageNamed:image];
        [imageView sizeToFit];
        [backView addSubview:imageView];
        [imageView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.centerX.equalTo(backView);
            make.centerY.equalTo(backView).offset(-80);
        }];
        UILabel *messageLabel = [UILabel new];
        messageLabel.text = message;
        messageLabel.numberOfLines = 0;
        messageLabel.font = [UIFont systemFontOfSize:14];
        messageLabel.textColor = [UIColor lightGrayColor];
        messageLabel.textAlignment = NSTextAlignmentCenter;
        [messageLabel sizeToFit];
        [backView addSubview:messageLabel];
        [messageLabel mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(imageView.mas_bottom).offset(10);
            make.centerX.equalTo(backView);
        }];
        
        self.backgroundView = backView;
    } else {
        self.backgroundView = nil;
    }
}


- (void)tableViewDisplayWitMsg:(NSString *) message ifNecessaryForRowCount:(NSUInteger) rowCount
{
    if (rowCount == 0) {
        // Display a message when the table is empty
        // 沒有數(shù)據(jù)的時候,UILabel的顯示樣式
        UILabel *messageLabel = [UILabel new];
        messageLabel.text = message;
        messageLabel.font = [UIFont systemFontOfSize:24];
//        messageLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
        messageLabel.textColor = [UIColor lightGrayColor];
        messageLabel.textAlignment = NSTextAlignmentCenter;
        [messageLabel sizeToFit];

        self.backgroundView = messageLabel;
//        self.separatorStyle = UITableViewCellSeparatorStyleNone;
    } else {
        self.backgroundView = nil;
//        self.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
    }
}
@end

給UICollectionView添加一個如下分類,在數(shù)據(jù)源方法里面調(diào)用。
UICollectionView+EmptyData.h文件

#import <UIKit/UIKit.h>
@interface UICollectionView (EmptyData)
//添加圖片和文字
- (void)collectionViewDisplayWitMsg:(NSString *)message andImage:(NSString *) image forRowCount:(NSUInteger) rowCount;
//添加文字
- (void)collectionViewDisplayWitMsg:(NSString *) message ifNecessaryForRowCount:(NSUInteger) rowCount;
@end

UICollectionView+EmptyData.m文件

#import "UICollectionView+EmptyData.h"

@implementation UICollectionView (EmptyData)

- (void)collectionViewDisplayWitMsg:(NSString *)message andImage:(NSString *)image forRowCount:(NSUInteger)rowCount
{
    if (rowCount == 0) {
        
        UIView *backView = [[UIView alloc]initWithFrame:self.backgroundView.frame];
        UIImageView *imageView = [[UIImageView alloc] init];
        imageView.image = [UIImage imageNamed:image];
        [imageView sizeToFit];
        [backView addSubview:imageView];
        [imageView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.centerX.equalTo(backView);
            make.centerY.equalTo(backView).offset(-80);
        }];
        UILabel *messageLabel = [UILabel new];
        messageLabel.text = message;
        messageLabel.numberOfLines = 0;
        messageLabel.font = [UIFont systemFontOfSize:14];
        messageLabel.textColor = [UIColor lightGrayColor];
        messageLabel.textAlignment = NSTextAlignmentCenter;
        [messageLabel sizeToFit];
        [backView addSubview:messageLabel];
        [messageLabel mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(imageView.mas_bottom).offset(10);
            make.centerX.equalTo(backView);
        }];
        
        self.backgroundView = backView;
    } else {
        self.backgroundView = nil;
    }
}

- (void)collectionViewDisplayWitMsg:(NSString *)message ifNecessaryForRowCount:(NSUInteger)rowCount
{
    if (rowCount == 0) {
        //Display a message when the table is empty
        //沒有數(shù)據(jù)的時候,UILabel的顯示樣式
        UILabel *messageLabel = [UILabel new];
        messageLabel.text = message;
        messageLabel.font = [UIFont systemFontOfSize:24];
        //messageLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
        messageLabel.textColor = [UIColor lightGrayColor];
        messageLabel.textAlignment = NSTextAlignmentCenter;
        [messageLabel sizeToFit];
        
        self.backgroundView = messageLabel;
        //self.separatorStyle = UITableViewCellSeparatorStyleNone;
    } else {
        self.backgroundView = nil;
        //self.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
    }
}

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 因為要結局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細...
    uniapp閱讀 4,877評論 0 12
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,836評論 4 61
  • 原文地址:http://m.itdecent.cn/p/db55bd5f5aeb[https://www.j...
    移動端_小剛哥閱讀 2,971評論 7 18
  • 笑來老師說,要把智慧用到大事上,然而生活中我們常常見到一些有小聰明的人,算盤扒拉的嘩嘩響,自己一點虧都不能吃,斤斤...
    遇見橙子閱讀 212評論 0 0
  • 在生活中,不可能一個類組成一個方法,比如汽車壞了,是需要送到修理廠的;電視機,電腦壞了,也是需要找一個器修廠的。J...
    腹黑小葉子orz閱讀 405評論 0 2

友情鏈接更多精彩內(nèi)容