YULinkageTableView
介紹
YULinkageTableView是一款多tableView(scrollView)共用同一header。進(jìn)行聯(lián)動(dòng)的視圖
使用
pod 'YULinkageTableView'
https://github.com/CombingMemory/YULinkageTableView
效果展示
特性
- 使用方便鹉戚、代碼0入侵
- 使用時(shí)添加需要聯(lián)動(dòng)的scrollView即可
- 不需要設(shè)置scrollView任何代理火欧,設(shè)置任何屬性或繼承自某父類(lèi)伙判,不用重寫(xiě)方法
- 支持添加VC中的view迈嘹,與vc.view中的scrollView進(jìn)行聯(lián)動(dòng)
- 支持插入鸟蟹、刪除單個(gè) 聯(lián)動(dòng)page頁(yè)
- segmented高度自定義蜕提,直接傳入原本已自定義好的segmented
- 支持adjustedContentInset
- 支持iOS 11以下的版本
- 支持單個(gè)page頁(yè)中多個(gè)scrollView的聯(lián)動(dòng)
API
/// 當(dāng)前的index
@property (nonatomic, assign) int currentIndex;
/// index發(fā)生了改變
@property (nonatomic, copy, nullable) void (^currentIndexChanged)(int index);
/// 視圖滾動(dòng)
@property (nonatomic, copy, nullable) void (^didScroll)(float offsetX,float offsetY);
/// 設(shè)置index
- (void)setCurrentIndex:(int)currentIndex animated:(BOOL)animated;
/// scrollView的自動(dòng)調(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 方法會(huì)早于 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ù)拖動(dòng)segmented拉動(dòng)headerView的時(shí)候凛膏,聯(lián)動(dòng)的子視圖未滑動(dòng)的時(shí)候出現(xiàn)聯(lián)動(dòng)錯(cuò)誤
- 修復(fù)了當(dāng)用戶第一次touch未離開(kāi)屏幕的時(shí)候,第二個(gè)touch觸發(fā)的時(shí)候脏榆、特殊情況下出現(xiàn)聯(lián)動(dòng)錯(cuò)誤的問(wèn)題
v 1.4.0
- 支持了可拖動(dòng)segmented將headerView下拉下來(lái)猖毫,不用等到子scrollView滑動(dòng)到頂部的時(shí)候才能對(duì)header進(jìn)行滑動(dòng)
- 修復(fù)了部分情況下代碼移動(dòng)子視圖造成聯(lián)動(dòng)錯(cuò)誤的問(wèn)題
v 1.3.5
- 修復(fù)動(dòng)態(tài)修改ignoreHeaderHeight屬性是,聯(lián)動(dòng)視圖高度不正確的問(wèn)題
v 1.3.4
- 添加屬性ignoreHeaderHeight,被忽略的頭部視圖高度
v 1.3.3
- 修復(fù)了聯(lián)動(dòng)視圖中嵌套子UIScrollView導(dǎo)致聯(lián)動(dòng)失敗的問(wèn)題
v 1.3.2
- 修復(fù)了設(shè)置默認(rèn)page頁(yè)面失敗的問(wèn)題
v 1.3.1
- 修復(fù)了self.view中多個(gè)scrollView聯(lián)動(dòng)時(shí)须喂,其中一個(gè)滑動(dòng)到頂部吁断,聯(lián)動(dòng)另一個(gè)也滑動(dòng)到頂部的問(wèn)題
v 1.3.0
- addScrollViewWithVC: 支持聯(lián)動(dòng) self.view中的多個(gè) scrollView
v 1.2.0
- 修復(fù)了插入新視圖趁蕊,約束錯(cuò)誤的問(wèn)題
- 適配了子視圖的contentInset.top屬性
v 1.1.0
- 修復(fù)了部分聯(lián)動(dòng)錯(cuò)誤
- 適配了adjustedContentInset
- 適配了ios 11 以下的設(shè)備
- 修復(fù)了ios 10 didScrollView回調(diào)順序不確定的問(wèn)題
后續(xù)功能
- 準(zhǔn)備開(kāi)發(fā)swift版本