說明:
最近在測試項目里的一個水平表格時發(fā)現(xiàn)一個問題:
模仿UITableView
實現(xiàn)的HorizontalTableView
在遇到 短時間內(nèi)需展示的數(shù)據(jù)量過大 的情況時,會因為性能問題導(dǎo)致整個頁面卡住。不幸的是該項目不可避免的會頻繁遇到這種狀況皆疹,也就只能被迫尋找其他解決方案。
其實需求非常簡單:
如上gif
所示,只需用水平的表格動態(tài)展示實時更新的數(shù)據(jù)(數(shù)據(jù)量以千位記),并可以通過左右滑動來查看所有數(shù)據(jù)晚胡。
分析了需求之后,我想到了之前寫過的輪播器:0-StoneView,就想嘗試用類似的原理實現(xiàn)一個“HorizontalTableView
”估盘,便有了這個View
瓷患。
實現(xiàn)之后經(jīng)過測試,發(fā)現(xiàn)它恰好可以滿足項目的需求遣妥,以此記之擅编。
使用方法:
-
拷貝以下文件到你的項目中:
SWRLabelTableView.h SWRLabelTableView.m STNHorizontalTableView.h STNHorizontalTableView.m
-
導(dǎo)入頭文件并使用 initWithFrame: 初始化 view :
#import "SWRLabelTableView.h" //...... //...... @property(nonatomic, strong)SWRLabelTableView *labelTableView; //...... //...... _labelTableView = [[SWRLabelTableView alloc]initWithFrame:CGRectMake(0,100,UIScreen.mainScreen.bounds.size.width,200)];
-
通過 點操作 或 設(shè)值方法 來自定義 view 的一些屬性,可定義的屬性如下:
@property(nonatomic,weak)NSArray *data; //數(shù)據(jù)源指針箫踩,指向一個可變數(shù)組 @property(nonatomic,assign)NSInteger endIndex; //顯示的最后一個數(shù)據(jù)在data數(shù)組中的下標(biāo)
使用時只需指定好數(shù)據(jù)源爱态,若有需要可通過更新
endIndex
屬性來手動刷新表格
有興趣的朋友們可自行下載源碼。
代碼寫的不好還請見諒境钟,歡迎大家提出寶貴意見锦担。