iOS聯(lián)動視圖 - YULinkageTableView

YULinkageTableView

介紹

YULinkageTableView是一款多tableView(scrollView)共用同一header。進(jìn)行聯(lián)動的視圖

使用

pod 'YULinkageTableView'

https://github.com/CombingMemory/YULinkageTableView

效果展示

RPReplay_Final1624278837.gif
RPReplay_Final1624278882.gif

特性

  • 使用方便、代碼0入侵
  • 使用時添加需要聯(lián)動的scrollView即可
  • 不需要設(shè)置scrollView任何代理,設(shè)置任何屬性或繼承自某父類,不用重寫方法
  • 支持添加VC中的view,與vc.view中的scrollView進(jìn)行聯(lián)動
  • 支持插入、刪除單個 聯(lián)動page頁
  • segmented高度自定義,直接傳入原本已自定義好的segmented
  • 支持adjustedContentInset
  • 支持iOS 11以下的版本
  • 支持單個page頁中多個scrollView的聯(lián)動

API

/// 當(dāng)前的index
@property (nonatomic, assign) int currentIndex;
/// index發(fā)生了改變
@property (nonatomic, copy, nullable) void (^currentIndexChanged)(int index);
/// 視圖滾動
@property (nonatomic, copy, nullable) void (^didScroll)(float offsetX,float offsetY);
/// 設(shè)置index
- (void)setCurrentIndex:(int)currentIndex animated:(BOOL)animated;

/// scrollView的自動調(diào)整高度。VC的屬性automaticallyAdjustsScrollViewInsets為YES的情況下使用
@property (nonatomic, assign) float adjustedTop API_DEPRECATED("VC的屬性automaticallyAdjustsScrollViewInsets為YES的情況下使用",ios(7.0,11.0));

/// 忽略的頭部高度 默認(rèn):0
@property (nonatomic, assign) float ignoreHeaderHeight;

/// 設(shè)置segmented
- (void)setSegmented:(nonnull UIView *)segmented;



/// 添加scrollView
- (BOOL)addScrollView:(nonnull UIScrollView *)scrollView;
/// 插入scrollView
- (BOOL)insertScrollView:(nonnull UIScrollView *)scrollView atIndex:(NSInteger)index;



//  YULinkageTableViewDelegate 代理中的 provideScrollViewForResponse 方法會早于 viewDidLoad執(zhí)行。因此所返回的 scrollView 需采用懶加載的方式創(chuàng)建。
//  另vc需要自行添加為指定的控制器的子控制器 addChildViewController

/// 根據(jù)VC添加scrollView
- (BOOL)addScrollViewWithVC:(nonnull UIViewController<YULinkageTableViewDelegate> *)vc;
/// 根據(jù)VC插入scrollView
- (BOOL)insertScrollViewWithVC:(nonnull UIViewController<YULinkageTableViewDelegate> *)vc atIndex:(NSInteger)index;




/// 刪除subView
- (BOOL)removeSubviewAtIndex:(NSInteger)index;

版本

v 1.4.1

  • 修復(fù)拖動segmented拉動headerView的時候,聯(lián)動的子視圖未滑動的時候出現(xiàn)聯(lián)動錯誤
  • 修復(fù)了當(dāng)用戶第一次touch未離開屏幕的時候,第二個touch觸發(fā)的時候、特殊情況下出現(xiàn)聯(lián)動錯誤的問題

v 1.4.0

  • 支持了可拖動segmented將headerView下拉下來,不用等到子scrollView滑動到頂部的時候才能對header進(jìn)行滑動
  • 修復(fù)了部分情況下代碼移動子視圖造成聯(lián)動錯誤的問題

v 1.3.5

  • 修復(fù)動態(tài)修改ignoreHeaderHeight屬性是,聯(lián)動視圖高度不正確的問題

v 1.3.4

  • 添加屬性ignoreHeaderHeight,被忽略的頭部視圖高度

v 1.3.3

  • 修復(fù)了聯(lián)動視圖中嵌套子UIScrollView導(dǎo)致聯(lián)動失敗的問題

v 1.3.2

  • 修復(fù)了設(shè)置默認(rèn)page頁面失敗的問題

v 1.3.1

  • 修復(fù)了self.view中多個scrollView聯(lián)動時,其中一個滑動到頂部,聯(lián)動另一個也滑動到頂部的問題

v 1.3.0

  • addScrollViewWithVC: 支持聯(lián)動 self.view中的多個 scrollView

v 1.2.0

  • 修復(fù)了插入新視圖,約束錯誤的問題
  • 適配了子視圖的contentInset.top屬性

v 1.1.0

  • 修復(fù)了部分聯(lián)動錯誤
  • 適配了adjustedContentInset
  • 適配了ios 11 以下的設(shè)備
  • 修復(fù)了ios 10 didScrollView回調(diào)順序不確定的問題

后續(xù)功能

  • 準(zhǔn)備開發(fā)swift版本

喜歡了幫忙點個star

https://github.com/CombingMemory/YULinkageTableView

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容