//
//  UIView+TileSubviews.h
//  Gengmei
//
//  Created by wangyang on 2016/10/26.
//  Copyright © 2016年 更美互动信息科技有限公司. All rights reserved.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN
@interface UIView (TileSubviews)
/**
 按照参数设置好每个subview的frame,并返回view的总体高度,该高度包含padding的top与bottom
 |----------------------------------|
 |             padding.top          |
 |    |--------------|  |-------|   |
 |    |   Label      |  | Image |   |
 |    |              |  |       |   |
 |    |--------------|  |-------|   |
 |             padding.bottom       |
 |----------------------------------|
 @param views     待摆放的subviews
 @param padding   父视图与subviews整体的间距
 @param spacing   每个subview之间的水平、竖直方向的间距
 @param maxWidth  父view的最大宽度,包含padding的left与right
 @param caculater 计算每个subview的大小, 可以为nil,将自动使用每个view.intrinsicContentSize

 @return view的总体高度
 */
- (CGFloat)layoutSubviews:(NSArray<UIView *> *)views
                  padding:(UIEdgeInsets)padding
                  spacing:(CGPoint)spacing
                 maxWidth:(CGFloat)maxWidth
              subviewSize:(CGSize (^ __nullable)(NSUInteger idx))caculater;

- (CGFloat)layoutSubviews:(NSArray<UIView *> *)views
                  padding:(UIEdgeInsets)padding
                  spacing:(CGPoint)spacing
                 maxWidth:(CGFloat)maxWidth
               singleLine:(BOOL)singleLine
              subviewSize:(CGSize (^ __nullable)(NSUInteger idx))caculater;

@end
NS_ASSUME_NONNULL_END