Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用SnapKit的多个视图的等间距_Ios_Swift_Uikit_Snapkit - Fatal编程技术网

Ios 使用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

如何使用snap kit在视图(以及firstSubview.left和lastSubview.right的superview)之间实现与下图中的条形图相同的间距(以及使用SnapKit而不是堆栈视图等)


谢谢

如果您不想或不能使用
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的选项?您可以将它们添加到视图中,然后将它们的宽度设置为相等,这样就可以垂直放置子视图了?