我正在开发一个快速的应用程序,它将适合屏幕上的10个项目。如果我想在不改变尺寸的屏幕上执行此操作,即用户不改变方向,或者iPad用户不使用分屏,则可以通过执行let size = bounds.width/19
来检测宽度。>
问题在于屏幕尺寸是动态的,因此我需要进行限制。我不想使用UICollectionView,因为它太重了,如果可能的话,也不想使用UIStackView,因为我认为它不支持我需要圆圈的纵横比。我正在尝试使用UIViews。
编辑: 这就是我希望他们看起来的样子。这将是大约50高,而其他信息将在下面。
答案 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