// // PBStackView.h // Flex // // Created by LStar on 2021/1/29. // Copyright © 2021 刘星辰. All rights reserved. // #import @class PBFlexBoxLayout; @interface PBStackView : UIStackView /// 带位置布局block的添加view /// @param handle view的block /// @param layoutHandle 位置布局block - (void)addArrangedSubview:(UIView *(^)(void))handle layout:(void (^)(PBFlexBoxLayout * layout))layoutHandle; /// 更新view的位置block /// @param view 目标view /// @param layoutHandle 位置布局block - (void)updateArrangedSubview:(UIView *)view layout:(void (^)(PBFlexBoxLayout * layout))layoutHandle; /// 插入view /// @param handle view的block /// @param stackIndex 插入的下标 /// @param layoutHandle 位置布局block - (void)insertArrangedSubview:(UIView *(^)(void))handle atIndex:(NSUInteger)stackIndex layout:(void (^)(PBFlexBoxLayout * layout))layoutHandle; @end @interface PBRowBox : PBStackView @end @interface PBColumnBox : PBStackView @end @interface PBFlexBoxLayout : NSObject /// 水平方向:左间距 垂直方向:上间距 @property (nonatomic,assign)CGFloat leading; /// 水平方向:右间距 垂直方向:下间距 @property (nonatomic,assign)CGFloat trailing; /// 控件的宽度 默认是:CGFLOAT_MAX @property (nonatomic,assign)CGFloat width; /// 控件的高度 默认是:CGFLOAT_MAX @property (nonatomic,assign)CGFloat height; @end @interface PBFlexBoxSpring : UIView @end @interface UIView(PBStackView) /// 更新view的位置block /// @param layoutHandle 位置布局block - (void)updateBoxLayout:(void (^)(PBFlexBoxLayout * layout))layoutHandle; @end