【iOS 0 行代碼系列】之 0 行代碼實現(xiàn)TableView,CollectionView無數(shù)據(jù)占位圖與文字

一、前言

如果你還沒有看過下面的文章,可以花點時間看看

1.一行代碼完成“空TableView占位視圖”管理:
http://www.itdecent.cn/p/0a5f6b221ab6
原理:

1.獲取 Section 的數(shù)量

2.獲取每一個 Section 當中 Cell 的數(shù)量


2.UITableView沒數(shù)據(jù)時用戶提示如何做?
http://www.itdecent.cn/p/e39699b0d134
原理:

基于 [dataSource count];

一行代碼實現(xiàn)


3.iOS 0行代碼實現(xiàn) TableView 無數(shù)據(jù)時展示占位視圖
http://www.itdecent.cn/p/246b445ec4e3
原理:

1.獲取 Section 的數(shù)量

2.獲取每一個 Section 當中 Cell 的數(shù)量


二、正題:

1.原理

UITableView有一個屬性:

@property (nonatomic, readonly) NSArray<__kindof UITableViewCell *> *visibleCells;

UICollectionView有同樣的一個屬性:

@property (nonatomic, readonly) NSArray<__kindof UICollectionViewCell *> *visibleCells;

都是獲取可見的 Cell

可以根據(jù) reload 之后,可見 Cell 的數(shù)量來判斷,列表是否為空。

2.遇到的問題

collectionView 在 reload 之后 self.visibleCells.count 是 0

經(jīng)查找,需要先調用 [self layoutIfNeeded];才行

參考:

https://stackoverflow.com/questions/26055626/uicollectionview-visiblecells-returns-0-before-scrolling

3.通過實現(xiàn)代理方法來定制圖片與文字,以及代理返回的 emptyView 進行更多定制

3.1collectionView 的代理方法

@protocol JHNoDataUICollectionViewDelegate <NSObject>

@optional

/// offer a image to show some infomation for user.
-(UIImageView *)imageViewForCollectionViewWhenDataSourceIsEmpty;

/// offer a label to show some infomation for user.
-(UILabel *)labelForCollectionViewWhenDataSourceIsEmpty;

/// the empty view that add to tableView.
-(void)emptyViewForCollectionViewWhenDataSourceIsEmpty:(UIView *)emptyView;

@end

3.2tableView 的代理方法

@protocol JHNoDataUITableViewDelegate <NSObject>

@optional

/// offer a image to show some infomation for user.
-(UIImageView *)imageViewForTableViewWhenDataSourceIsEmpty;

/// offer a label to show some infomation for user.
-(UILabel *)labelForTableViewWhenDataSourceIsEmpty;

/// the empty view that add to tableView.
-(void)emptyViewForTableViewWhenDataSourceIsEmpty:(UIView *)emptyView;

@end

地址:

https://github.com/xjh093/JHNoDataEmptyViewForT-C

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

相關閱讀更多精彩內容

  • PLEASE READ THE FOLLOWING APPLE DEVELOPER PROGRAM LICENSE...
    念念不忘的閱讀 13,660評論 5 6
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,877評論 2 45
  • 由于第一天開業(yè)!全部特價!僅限1天?。。∧阏也坏降牡蛢r~~~ 全國移動(省內流量) 移動直充最活動 ,流量秒到,原...
    花襯衫襯衫花閱讀 267評論 0 0
  • 這段看了孫紅雷主演的好先生,說實在的,我并不喜歡孫紅雷的外形,但好先生這個角色還真適合他,不看顏值,看氣質。把一個...
    一路16閱讀 400評論 0 0
  • 快放假了,趕緊的吧,都等得不耐煩了,八點半開會,現(xiàn)在十點半了。 再不開就走了啊,今天不開了? 我和敏佳在門口等車,...
    一粟小閱讀 377評論 0 0

友情鏈接更多精彩內容