Swift,如何动态添加X个具有约束的视图

时间:2018-08-30 17:01:20

标签: ios swift constraints

我正在开发一个快速的应用程序,它将适合屏幕上的10个项目。如果我想在不改变尺寸的屏幕上执行此操作,即用户不改变方向,或者iPad用户不使用分屏,则可以通过执行let size = bounds.width/19来检测宽度。

问题在于屏幕尺寸是动态的,因此我需要进行限制。我不想使用UICollectionView,因为它太重了,如果可能的话,也不想使用UIStackView,因为我认为它不支持我需要圆圈的纵横比。我正在尝试使用UIViews。

编辑: 这就是我希望他们看起来的样子。这将是大约50高,而其他信息将在下面。

enter image description here

1 个答案:

答案 0 :(得分:2)

UIStackView是完成此任务的正确工具。将来,我建议您更严格地定义您首先要想要发生的事情,然后深入文档。

let sv = UIStackView()
sv.spacing = 10
// this means each arranged subview will take up the same amount of space
sv.distribution = .fillEqually 

for _ in 0..<50 { 
    // omitting the rounded corners or any other styling because
    // it's not the point of this question
    let subview = UIView()
    // The stack view will determine the width based on the screen size
    // we just need to say that height == width
    subview.widthAnchor.constraint(equalTo: subview.heightAnchor).isActive = true
    sv.addArrangedSubview(subview)
}

// add your stackview to your view hierarchy and constrain it