可以一行代碼完成tableview空數(shù)據(jù)時(shí)的占位界面

最近不是很忙,整理了一下項(xiàng)目中用到的部分功能進(jìn)行了封裝以及優(yōu)化

這里要介紹的便是可以一行代碼完成tableview空數(shù)據(jù)時(shí)的占位界面

tableview大家經(jīng)常都可以用到,但是在處理空數(shù)據(jù)時(shí),很多項(xiàng)目都已經(jīng)做了空數(shù)據(jù)時(shí)的占位界面處理,這對(duì)用戶來(lái)說(shuō)十分友好。因?yàn)樽约旱捻?xiàng)目經(jīng)常有表格的界面,之前一直按照需求去加這種占位界面,但是界面漸漸多了起來(lái),感覺(jué)很難受,每次都要去寫界面。而項(xiàng)目一直趕進(jìn)度,暫時(shí)也沒(méi)有去進(jìn)行優(yōu)化。最近閑了下來(lái),便著手進(jìn)行優(yōu)化和封裝。

做這個(gè)的時(shí)候,有去了解一些主流的封裝方式,有的采用的是自己封裝一個(gè)父類的tableView,雖然這很方便,但是對(duì)于一些一開始就沒(méi)有用這個(gè)父類的項(xiàng)目來(lái)說(shuō),不是太友好,有很多潛伏的危險(xiǎn)。這種方式,我比較推薦一開始就使用,而不是在項(xiàng)目?jī)?yōu)化的時(shí)候改成繼承別人寫的父類的tableViewController。這里說(shuō)一下我用的方式,

主要的就是根據(jù)KVO來(lái)判斷是否要在tableViewController上加上一個(gè)view去做遮擋,形成一個(gè)占位界面。

這里最主要的方法

/*!
 @method
 @abstract          根據(jù)傳入的tableview 加入當(dāng)數(shù)組為空時(shí)的占位圖名稱為icon的圖片界面
 @discussion        需要正確傳參,iconname 是占位圖片的名字
 @param view        當(dāng)前要使用占位界面的tableview
 @param array       當(dāng)前要使用占位界面的tableview的數(shù)據(jù)源數(shù)組
 @param icon        當(dāng)前要使用占位界面的圖片名稱
 @param viewClicked 點(diǎn)擊圖片的回調(diào)
 */
-(void)showCenterWithSuperView:(UIView *)view array:(NSArray *)array iconName:(NSString *)icon viewClicked:(ViewClicked)viewClicked;

使用方式也很簡(jiǎn)單

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:self.tableView];
    
    self.dataArray=[NSMutableArray array];
    [[LPPlaceHolderViewTableView shareNoDataPlacehodelView] showCenterWithSuperView:self.tableView array:self.dataArray iconName:@"圖表無(wú)數(shù)據(jù)" viewClicked:^{
        [self addArrayData];
    }];

    // Do any additional setup after loading the view, typically from a nib.
}

注意?。?!

因?yàn)槭峭ㄟ^(guò)KVO監(jiān)測(cè)的,所有當(dāng)你的tableViewController的數(shù)據(jù)源改變時(shí)(也就是代碼中的 self.dataArray),一定要重新賦值?。?!

-(void)addArrayData {
    [self.dataArray addObject:@"--1-- 有數(shù)據(jù)源啦!?。。。?!"];
    [self.dataArray addObject:@"--2-- 有數(shù)據(jù)源啦?。。。。?!"];
    [self.dataArray addObject:@"--3-- 有數(shù)據(jù)源啦!?。。。。?];
    [self.dataArray addObject:@"--4-- 有數(shù)據(jù)源啦?。。。。?!"];
    // 需要重指向行觸發(fā)KVO
    [LPPlaceHolderViewTableView shareNoDataPlacehodelView].NoDataPlacehodelViewDataArray = self.dataArray;    
}
- (IBAction)deleteDataButtonAction:(id)sender {
    [self.dataArray removeAllObjects];
    // 需要重指向行觸發(fā)KVO
    [LPPlaceHolderViewTableView shareNoDataPlacehodelView].NoDataPlacehodelViewDataArray = self.dataArray;
//        
}
Untitled.gif

最后附上demo地址:https://github.com/bommmmmmm/PlaceHodelViewTableView 求個(gè)star喲~~~~~
個(gè)人的blog:https://bommmmmmm.github.io

簡(jiǎn)書地址:http://www.itdecent.cn/u/955aaff4602f

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

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,141評(píng)論 4 61
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,872評(píng)論 25 709
  • 2.7 投射 感賞學(xué)習(xí)親子教育后,現(xiàn)學(xué)現(xiàn)賣效果挺好。期待我們?nèi)胰死^續(xù)加油,和孩子一起健康快樂(lè)幸福的成長(zhǎng),我們的能...
    海波實(shí)踐吸引力法則閱讀 232評(píng)論 0 0
  • Transformations of Functions 函數(shù)的轉(zhuǎn)換 對(duì)應(yīng)的轉(zhuǎn)換過(guò)程 Vertical and H...
    dodo_lihao閱讀 834評(píng)論 6 1
  • 1991年的一個(gè)寒冷的冬日清晨,迎來(lái)了一個(gè)剛剛出生的女嬰,本應(yīng)高高興興的迎接這個(gè)寶貝??杉胰撕芸彀l(fā)現(xiàn)孩子的左手伸不...
    楊_288c閱讀 453評(píng)論 0 0

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