BBALinkedScrollView.h 2.62 KB
//
//  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