tableView沒有數(shù)據(jù)時(shí)拍柒,需要展示占位圖令哟,如果項(xiàng)目還不成熟恼琼,沒有這方面的機(jī)制,需要添加時(shí)屏富,我們每一個(gè)使用了tableView的VC都添加代碼晴竞,手動(dòng)判斷是否需要顯示占位圖,非常的麻煩狠半,于是我就給UITableView 寫了個(gè)categary, 只需要拖入文件到工程(連頭文件都不需要導(dǎo)入)噩死,就可以完成項(xiàng)目中所有tableView的占位圖的批量設(shè)置,非常舒服神年。PSSTableViewNoneData (demo鏈接點(diǎn)擊此處)
用到的技術(shù)
- Runtime 方法交換(hook)
- Runtime 給categary動(dòng)態(tài)添加屬性關(guān)聯(lián)
- categary的應(yīng)用
demo圖片演示
使用方法:直接拖入工程
提供接口
- 如果只是用到demo中默認(rèn)的視圖 或者 直接修改自定義的視圖已维,則不需要導(dǎo)入頭文件,拖進(jìn)去就能用已日,需要修改實(shí)現(xiàn)的類名為:PSSNoneDataView
- 如果需要手動(dòng)設(shè)置自定義視圖垛耳,或者需要手動(dòng)設(shè)置視圖的顯現(xiàn),則需要導(dǎo)入頭文件:UITableView+PSSNoneData
- 以下是提供的接口:
#import <UIKit/UIKit.h>
@class PSSNoneDataView;
typedef enum : NSUInteger {
PSSNoneDataStyleNone, // 關(guān)閉此機(jī)制
PSSNoneDataStyleDefault, // 使用PSS默認(rèn)的視圖 (默認(rèn)視圖)
PSSNoneDataStyleDIY, // 自定義DIY視圖, 如果DIY視圖為nil 使用PSS默認(rèn)視圖
} PSSNoneDataStyle;
// 這是默認(rèn)的style, 默認(rèn)是使用 PSS默認(rèn)視圖 的
PSSNoneDataStyle PSS_DefaultStyle = PSSNoneDataStyleDefault;
@interface UITableView (PSSNoneData)
@property (nonatomic, assign) PSSNoneDataStyle pss_noneDataStyle;
/*
* 只在 PSSNoneDataStyleDIY 下生效
* frame 或者 布局, 需要自己給定
*/
@property (nonatomic, strong) UIView *pss_diyView;
/*
* 描述: 是否顯示 無數(shù)據(jù)視圖
* 只在 非PSSNoneDataStyleNone并且pss_isManualShow==YES 時(shí)生效
*/
@property (nonatomic, assign) BOOL pss_showNoneDataView;
/*
* 描述: 是否手動(dòng)顯示 無數(shù)據(jù)視圖; 默認(rèn)為NO
*/
@property (nonatomic, assign) BOOL pss_isManualShow;
// 默認(rèn)視圖, readonly
@property (nonatomic, strong, readonly) PSSNoneDataView *pss_defaultView;
@end
@interface UIScrollView (PSS)
- (void)pss_setContentSize:(CGSize)contentSize;
@end
如果您感興趣飘千,想要查看.m文件堂鲜,歡迎下載PSSTableViewNoneData (demo鏈接點(diǎn)擊此處)
如果覺得對(duì)您有幫助,就star一下吧护奈。您的star就是對(duì)我最大的鼓勵(lì)缔莲!
如果發(fā)現(xiàn)什么問題,或者有什么意見霉旗,請(qǐng)加我qq或微信:704158807
電子郵箱:pangshishan@aliyun.com