SnapKit 关于数组Array的扩展—— 自适应宽度、垂直、水平、九宫格布局
前言
用SnapKit这个第三方写自动布局,使用起来的确很舒服,但是对于Array却没有相关的支持,然后在网上找了这篇文 SnapKit的扩展–添加数组控制约束,和九宫格布局,等宽,等间距等布局方式 ,感谢
但是只有水平、垂直、九宫格布局,如果我想让多个button,按它的title的内容的宽度自适应排列呢,所以,决定自己写个扩展,参考了上面那篇文的代码,并做了一些修改。
其具体实现及Demo代码如下: Github 地址
仅供参考,希望有所帮助,如果你有什么好的方式,请告知,感谢。
以下为展示的效果例子及说明:
自适应宽度布局
public func distributeDetermineWidthViews(verticalSpacing: CGFloat,
horizontalSpacing: CGFloat,
maxWidth: CGFloat,
determineWidths: [CGFloat],
itemHeight: CGFloat,
edgeInset: UIEdgeInsets = UIEdgeInsets.zero,
topConstrainView: ConstraintView? = nil)
// verticalSpacing 每个view之间的垂直距离
// horizontalSpacing 每个view之间的水平距离
// maxWidth 是整个布局的最大宽度,需要事前传入,比如 self.view.bounds.size.width - 40
// textWidth 是每个view的宽度,也需事前计算好
// itemHeight 每个view的高度
// edgeInset 整个布局的 上下左右边距,默认为 .zero
// topConstrainView 整个布局之上的view, 从topConstrainView.snp.bottom开始计算,
// 比如,传入上面的label,则从 label.snp.bottom + edgeInset.top 开始排列, 默认为nil, 此时布局从 superview.snp</