1. 程式人生 > >【iOS 0 行程式碼系列】之 0 行程式碼實現TableView,CollectionView無資料佔位圖與文字

【iOS 0 行程式碼系列】之 0 行程式碼實現TableView,CollectionView無資料佔位圖與文字

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

>>>>>1.一行程式碼完成“空TableView佔位檢視”管理:

原理:

1.獲取 Section 的數量

2.獲取每一個 Section 當中 Cell 的數量

>>>>>2.UITableView沒資料時使用者提示如何做?


原理:

基於 [dataSource count];

一行程式碼實現 

>>>>>3.iOS 0行程式碼實現 TableView 無資料時展示佔位檢視

原理:

1.獲取 Section 的數量

2.獲取每一個 Section 當中 Cell 的數量

進入正題:

1.原理

UITableView有一個屬性:


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

UICollectionView有同樣的一個屬性:

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

都是獲取可見的 Cell

可以根據 reload 之後,可見 Cell 的數量來判斷,列表是否為空。

2.遇到的問題

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

經查詢,需要先呼叫 [self layoutIfNeeded]; 才行

參考:

3.通過實現代理方法來定製圖片文字,以及代理返回的 emptyView 進行更多定製

>>>>> collectionView 的代理方法

@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


>>>>> tableView 的代理方法

@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


地址:

相關推薦

iOS 0 程式碼系列 0 程式碼實現TableView,CollectionView資料佔位文字

如果你還沒有看過下面的文章,可以花點時間看看 >>>>>1.一行程式碼完成“空TableView佔位檢視”管理: 原理: 1.獲取 Section 的數量 2.

Python面試必看系列手撕程式碼

明天有個筆試,有可能會現場手撕程式碼,所以現在先提前準備幾個常見的程式設計題練練手 一、氣泡排序 lis=[1,8,0,5,6,3,7,4,2] temp=[] for i in range(0,len(lis)): for j in range(i+1,len(lis)

Windows10 IoT開發系列Powershell命令實用程序

啟動應用 solution 人員 sina rac oot 表示 art 顯示 原文:【Windows10 IoT開發系列】Powershell命令行實用程序 更新帳戶密碼: 強烈建議你更新默認的管理員帳戶密碼。若要更新帳戶密碼,你可以發出以

Python面試必看系列怎麼移除一個字串中的前導空格?

Q 20. 怎麼移除一個字串中的前導空格? 字串中的前導空格就是出現在字串中第一個非空格字元前的空格。我們使用方法 Istrip() 可以將它從字串中移除。 >>> ' Ayushi '.lstrip() 結果: ‘Ayushi ‘ 可以看到

Python面試必看系列Python 區分大小寫嗎?

Q 18. Python 區分大小寫嗎? 如果能區分像 myname 和 Myname 這樣的識別符號,那麼它就是區分大小寫的。也就是說它很在乎大寫和小寫。我們可以用 Python 試一試: >>> myname="hupo" >>> Myna

Python面試必看系列解釋 Python 中的 join() 和 split() 函式

Q 17. 解釋 Python 中的 join() 和 split() 函式 Join()能讓我們將指定字元新增至字串中。 >>> ','.join('12345') 輸出: ‘1,2,3,4,5’ Split() 能讓我們用指定字元分割字串。

Python面試必看系列如何以就地操作方式打亂一個列表的元素

Q 16. 如何以就地操作方式打亂一個列表的元素? 為了達到這個目的,我們從 random 模組中匯入 shuffle() 函式。 >>> from random import shuffle >>> mylist=[x for x in ra

Python面試必看系列什麼是負索引

Q 15. 什麼是負索引? 先建立一個列表: lis=[1,2,3,4,5] 使用正索引取出列表中的第一個數: lis[0] 輸出: 1 負索引和正索引不同,它是從右邊開始檢索。例如:使用負索引取出列表的最後一個數 lis[-1] 輸出: 5

Python面試必看系列計算一個檔案中的大寫字母數量

Q 14. 請寫一個 Python 邏輯,計算一個檔案中的大寫字母數量 首先在程式所在資料夾下面新建一個test.txt檔案,裡面寫入一些大小寫字母,然後執行下面的程式即可: with open('test.txt') as test: count = 0 fo

Python面試必看系列請解釋使用 *args 和 **kwargs 的含義

Q 13. 請解釋使用 *args 和 **kwargs 的含義 當不知道向函式傳遞多少引數時,比如我們向函式傳遞一個列表或元組,我們就使用 * args。 >>> def func(*args): for i in args: prin

Python面試必看系列Python 中的字典是什麼?

Q 12. Python 中的字典是什麼? 字典是 C++ 和 Java 等程式語言中所沒有的東西,它具有鍵值對。 >>> roots={25:5,16:4,9:3,4:2,1:1} >>> type(roots) <class 'dic

Python面試必看系列當退出 Python 時,是否釋放全部記憶體?

Q 10. 當退出 Python 時,是否釋放全部記憶體? 答案是 No。迴圈引用其它物件或引用自全域性名稱空間的物件的模組,在 Python 退出時並非完全釋放。 另外,也不會釋放 C 庫保留的記

Python面試必看系列Python 中的識別符號長度能有多長?

Q 19. Python 中的識別符號長度能有多長? 在 Python 中,識別符號可以是任意長度。此外,我們在命名識別符號時還必須遵守以下規則: 只能以下劃線或者 A-Z/a-z 中的

Dubbo源碼閱讀系列遠程服務調用(上)

res 簡單的 eric 執行流程 交互 windbg 模式 face voc 今天打算來講一講 Dubbo 服務遠程調用。筆者在開始看 Dubbo 遠程服務相關源碼的時候,看的有點迷糊。後來慢慢明白 Dubbo 遠程服務的調用的本質就是動態代理模式的一種實現。本地消費者無

CNMP系列CentOS7.0下安裝Nginx服務

系統資源 for proxy input strong network emc -c .com 話步前言,CNMP之路,系統起步:http://www.cnblogs.com/riverdubu/p/6425028.html 這回我來講解下CentOS7.0下如何安裝和配置

轉載Pycharm編輯器破解步驟idea和Pycharm 等系列產品激活激活方法和激活碼

ipc 有效 路徑 FQ wsh sim 圖片 放置 faq 感謝:雪中皓月的《idea和Pycharm 等系列產品激活激活方法和激活碼》 第一種方法:使用現有的註冊服務器 優點:快捷,方便,省事 缺點:經常被封殺,可能會面臨經常激活的困擾 License Server:

Mac + Python3.6 + facebook-wdaIOS自動化(二):安裝facebook-wda庫並編寫簡易自動化測試腳本

以及 應用 hot cit you ins dfa 查看端口 介紹 上一篇介紹完如何安裝WDA,接下來開始正式安裝開發庫並編寫自動化腳本。 目錄: 一、安裝facebook-wda庫 二、通過WEditor定位元素 三、附錄:學習資料

程式碼審計eduaskcms_v1.0.7前臺儲存型XSS漏洞分析

  0x00 環境準備 eduaskcms官網:https://www.eduaskcms.xin 網站原始碼版本:eduaskcms-1.0.7 程式原始碼下載:https://www.eduaskcms.xin/download/show/5.html 預設後臺地址:http://12

程式碼審計YUNUCMS_v1.0.6 前臺反射型XSS跨站指令碼漏洞分析

  0x00 環境準備 QYKCMS官網:http://www.yunucms.com 網站原始碼版本:YUNUCMSv1.0.6 程式原始碼下載:http://www.yunucms.com/Download/index.html 測試網站首頁:   0x01 程式碼分析

程式碼審計YUNUCMS_v1.0.6 後臺程式碼執行漏洞分析

  0x00 環境準備 QYKCMS官網:http://www.yunucms.com 網站原始碼版本:YUNUCMSv1.0.6 程式原始碼下載:http://www.yunucms.com/Download/index.html 測試網站首頁:   0x01 程式碼分析