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版本