Ios 使用SnapKit的多个视图的等间距
如何使用snap kit在视图(以及firstSubview.left和lastSubview.right的superview)之间实现与下图中的条形图相同的间距(以及使用SnapKit而不是堆栈视图等)Ios 使用SnapKit的多个视图的等间距,ios,swift,uikit,snapkit,Ios,Swift,Uikit,Snapkit,如何使用snap kit在视图(以及firstSubview.left和lastSubview.right的superview)之间实现与下图中的条形图相同的间距(以及使用SnapKit而不是堆栈视图等) 谢谢 如果您不想或不能使用UIStackView,可以通过将centerX约束设置到superview并为每个子视图添加不同的乘数来实现相同的布局: class ViewController: UIViewController { override func viewDidLoad
谢谢 如果您不想或不能使用
UIStackView
,可以通过将centerX约束设置到superview并为每个子视图添加不同的乘数来实现相同的布局:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .gray
let containerView = UIView()
containerView.backgroundColor = .lightGray
view.addSubview(containerView)
let numberOfLines = 8
for _ in 0..<numberOfLines {
let lineView = UIView()
lineView.backgroundColor = .cyan
containerView.addSubview(lineView)
}
containerView.snp.makeConstraints { (make) in
make.top.equalTo(60)
make.left.equalTo(20)
make.right.equalTo(-20)
make.height.equalTo(150)
}
let centerXFactor: CGFloat = 2 / CGFloat(containerView.subviews.count + 1)
containerView.subviews.enumerated().forEach { (index, lineView) in
lineView.snp.makeConstraints({ (make) in
make.top.bottom.equalTo(0)
make.width.equalTo(4)
make.centerX.equalTo(containerView).multipliedBy(CGFloat(index + 1) * centerXFactor)
})
}
}
}
类ViewController:UIViewController{
重写func viewDidLoad(){
super.viewDidLoad()
view.backgroundColor=.gray
让containerView=UIView()
containerView.backgroundColor=.浅灰色
view.addSubview(containerView)
设numberOfLines=8
对于0中的uu..只使用stackView?正如我所写的,是否有一个仅使用snapkit而不使用stackView的选项?您可以将它们添加到视图中,然后将它们的宽度设置为相等,这样就可以垂直放置子视图了?