一行代碼完成“空TableView占位視圖”管理

CYLTableViewPlaceHolder【一行代碼完成“空TableView占位視圖”管理】

pod-v1.0.6
pod-v1.0.6

Objective--C-compatible
Objective--C-compatible

platform-iOS-6.0+
platform-iOS-6.0+

導航

  1. 與其他框架的區別
  2. 集成后的效果
  3. 使用CYLTableViewPlaceHolder
  4. 運行Demo

與其他框架的區別

- 特點 解釋
1 輕量級、無污染 基于 UITableView 分類,無污染,比基于子類化、繼承的框架更加輕量級
2 低耦合 自定義占位視圖的可自行實現,通過協議傳遞,耦合性極低。
3 簡單,無學習成本 一行代碼完成,僅需使用 cyl_reloadData 代替 reloadData 即可。自動檢測是否需要 addSubviewremoveFromSuperview ,省去學習繁瑣的 add 和 remove 的調用時機。
4 使用方法簡單 CYLTableViewPlaceHolder 基于 dataSource 數據源,所以只需操作 dataSource 數據源,即可完成占位視圖的 addSubviewremoveFromSuperview 的時機,更加直觀。搭配 MJRefresh 使用十分方便,demo 中也給出了搭配使用方法。
5 支持CocoaPods 容易集成

(學習交流群:523070828)

集成后的效果

集成后的效果

使用CYLTableViewPlaceHolder

三步完成:

  1. 第一步:使用cocoaPods導入CYLTableViewPlaceHolder
  2. 第二步:遵循協議
  3. 第三步:使用cyl_reloadData代替reloadData

第一步:使用cocoaPods導入CYLTableViewPlaceHolder

Podfile 中如下導入:

pod 'CYLTableViewPlaceHolder'

然后使用 cocoaPods 進行安裝:

建議使用如下方式:

# 不升級CocoaPods的spec倉庫
pod update --verbose 

第二步:遵循協議

導入頭文件

#import "CYLTableViewPlaceHolder.h"

遵循協議

@interface ViewController ()<CYLTableViewPlaceHolderDelegate>

實現協議方法:

僅一個必須實現的協議方法:

創建一個自定義的占位視圖并返回

@required
/*!
@brief  make an empty overlay view when the tableView is empty
@return an empty overlay view
*/
- (UIView *)makePlaceHolderView;

這里注意兩點:

  1. CYLTableViewPlaceHoldercyl_reloadData方法內部會重新將該占位視圖的 frame 進行設置,設置為與當前的的 TableView 一致:包括 xy 坐標和寬高。防止 TableView 位置或尺寸的變更。
  2. 以上步驟,包括遵循協議實現協議方法,既可以在自定義的 TableView 中去做,也可以在 TableView 的代理中去做。

既可以讓代理遵循協議,實現協議方法:

@interface ViewController ()<CYLTableViewPlaceHolderDelegate>

也可以讓自定義的 TableView 遵循協議,實現協議方法:

@interface MyTableView ()<CYLTableViewPlaceHolderDelegate>

這里推薦在自定義的 TableView 中實現,以降低耦合性,同時也可以為 Controller 瘦身。

占位視圖的點擊事件等,請自行在 - (UIView *)makePlaceHolderView; 中所創建的 View 中實現。

另外,占位視圖默認的設置是不能滾動的,也就不能下拉刷新了,但是如果想讓占位視圖可以滾動,則需要實現下面的可選代理方法。

@optional
/*!
@brief enable tableView scroll when place holder view is showing,it is disabled by default.
@attention There is no need to return  NO , it will be NO by default
@return enable tableView scroll, you can only return YES
*/
- (BOOL)enableScrollWhenPlaceHolderViewShowing;

第三步:使用cyl_reloadData代替reloadData

使用方法:

僅需使用 cyl_reloadData 代替 reloadData 即可。

   [self.tableView cyl_reloadData];

注意: cyl_reloadData 內部已經實現了 [self.tableView reloadData]; 方法,請避免重復調用。

運行Demo

demo 的刷新組件使用的是 MJRefresh,所以需要導入相應的 CocoaPods 庫

# 打開終端,進入 clone 的文件夾
cd /Users/YourUserName/Documents/CYLTableViewPlaceHolder
# 如果提示找不到庫,則可去掉 --no-repo-update
pod install --verbose --no-repo-update 
open CYLTableViewPlaceHolder.xcworkspace

(更多iOS開發干貨,歡迎關注 微博@iOS程序犭袁


Posted by 微博@iOS程序犭袁
原創文章,版權聲明:自由轉載-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,698評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,202評論 3 426
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,742評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,580評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,297評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,688評論 1 327
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,693評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,875評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,438評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,183評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,384評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,931評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,612評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,022評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,297評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,093評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,330評論 2 377

推薦閱讀更多精彩內容