用ScrollView實現"偽HorizontalTableView"

1-StoneHorizontalTableViewDemo.gif
說明:

最近在測試項目里的一個水平表格時發現一個問題:
模仿UITableView實現的HorizontalTableView在遇到 短時間內需展示的數據量過大 的情況時,會因為性能問題導致整個頁面卡住。不幸的是該項目不可避免的會頻繁遇到這種狀況,也就只能被迫尋找其他解決方案。

其實需求非常簡單:
如上gif所示,只需用水平的表格動態展示實時更新的數據(數據量以千位記),并可以通過左右滑動來查看所有數據。

分析了需求之后,我想到了之前寫過的輪播器:0-StoneView,就想嘗試用類似的原理實現一個“HorizontalTableView”,便有了這個View

實現之后經過測試,發現它恰好可以滿足項目的需求,以此記之。

使用方法:
  • 拷貝以下文件到你的項目中:

     SWRLabelTableView.h
     SWRLabelTableView.m
     STNHorizontalTableView.h
     STNHorizontalTableView.m
    
  • 導入頭文件并使用 initWithFrame: 初始化 view :

    #import "SWRLabelTableView.h"
    //......
    //......
    @property(nonatomic, strong)SWRLabelTableView *labelTableView;
    //......
    //......
    _labelTableView = [[SWRLabelTableView alloc]initWithFrame:CGRectMake(0,100,UIScreen.mainScreen.bounds.size.width,200)];
    
  • 通過 點操作 或 設值方法 來自定義 view 的一些屬性,可定義的屬性如下:

    @property(nonatomic,weak)NSArray *data;
    //數據源指針,指向一個可變數組
    
    @property(nonatomic,assign)NSInteger endIndex;
    //顯示的最后一個數據在data數組中的下標
    
  • 使用時只需指定好數據源,若有需要可通過更新endIndex屬性來手動刷新表格

有興趣的朋友們可自行下載源碼。
代碼寫的不好還請見諒,歡迎大家提出寶貴意見。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容