BBALinkedScrollView.h
2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//
// BBALinkedScrollView.h
// BBAPods
//
// Created by 00 on 2017/5/22.
// Copyright © 2017年 Baidu. All rights reserved.
//
#import <UIKit/UIKit.h>
/**
* @brief 联动列表(用于处理多个子列表需要联动的场景)
*
* @note
* !!!不能直接通过 addSubView: 方法向联动列表上添加视图,同样移除视图也不能直接对子视图发送removeFromSuperView方法,而需使用联动列表的removeScrollableView: 、removeCustomView: 方法 !!!
*
* 1, 对于子列表必须通过 addScrollableView: 方法添加到联动列表上
* 2, 对于其他通用视必须通过 addCustomView: 方法添加到联动列表上
*/
@interface BBALinkedScrollView : UIScrollView
/**
* 是否启动监听子列表的滚动情况(默认开启)
*/
@property (nonatomic, assign) BOOL activeListenSubOffset;
/**
* @brief 添加可滚动的视图
*
* @param scrollableView 可滚动的视图(包括UIScrollView、UIScrollView的子类、包含UIScrollView的view,如:WKWebView)
*/
- (UIScrollView *)addScrollableView:(UIView *)scrollableView;
/**
* @brief 添加普通视图
*
* @param customView 普通视图
*/
- (void)addCustomView:(UIView *)customView;
/**
* @brief 向指定subview后面插入可滚动视图
*
* @param scrollableView 可滚动的视图(包括UIScrollView、UIScrollView的子类、包含UIScrollView的view,如:WKWebView)
* @param siblingSubview 参考视图(scrollableView将被插入到siblingSubview之后,若siblingSubview为nil,则scrollableView将插入到最前面;若siblingSubview之前没有被添加到LinkScrollView上,则scrollableView将被追加到最后)
*/
- (UIScrollView *)insertScrollableView:(UIView *)scrollableView belowSubview:(UIView *)siblingSubview;
/**
* @brief 向指定subview后面插入普通视图
*
* @param customView 普通视图
* @param siblingSubview 参考视图(customView将被插入到siblingSubview之后,若siblingSubview为nil,则customView将插入到最前面;若siblingSubview之前没有被添加到LinkScrollView上,则customView将被追加到最后)
*/
- (void)insertCustomView:(UIView *)customView belowSubview:(UIView *)siblingSubview;
/**
* @brief 移除可滚动视图
*
* @param scrollableView 可滚动的视图
*/
- (void)removeScrollableView:(UIView *)scrollableView;
/**
* @brief 移除普通视图
*
* @param customView 普通视图
*/
- (void)removeCustomView:(UIView *)customView;
/**
* @brief 重新计算内容大小 (在内容大小有变化的情况下,需调用该方法进行重新计算布局)
*/
- (void)reloadContentSize;
@end