// // 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