iOS:自动布局动态数量的项目
我正在尝试重新创建如下所示的视图。对我来说,困难在于其中一些元素将有不同数量的实例 第一项是带有variabel多行的UILabel。此项目将始终只有一个。 UIImageView。这可以是零项或一项。 UIButton 0或以上,至少3-4个。 如何做到这一点? 实现这一目标的最佳实践是什么?我有一个想法,就是使用UITableView,将每个元素放在一个表视图单元格中。但这似乎是一个有点老套的解决方案。特别是因为我必须删除表格边框和填充的默认样式 另一个解决方案是可能只使用一列的UICollectionView 第三种解决方案是在我已有的autolayout解决方案的基础上构建,并使用大量的if语句和for循环来实现它。这似乎是一个糟糕的解决方案iOS:自动布局动态数量的项目,ios,uitableview,uicollectionview,autolayout,Ios,Uitableview,Uicollectionview,Autolayout,我正在尝试重新创建如下所示的视图。对我来说,困难在于其中一些元素将有不同数量的实例 第一项是带有variabel多行的UILabel。此项目将始终只有一个。 UIImageView。这可以是零项或一项。 UIButton 0或以上,至少3-4个。 如何做到这一点? 实现这一目标的最佳实践是什么?我有一个想法,就是使用UITableView,将每个元素放在一个表视图单元格中。但这似乎是一个有点老套的解决方案。特别是因为我必须删除表格边框和填充的默认样式 另一个解决方案是可能只使用一列的UIColl
那么,我如何使用最佳实践来实现这一点呢?例如,将UITableView用于纯布局目的通常是一个坏主意吗?创建一个UIStackView,并在其中为具有零个或多个实例的每个项目创建另一个UIStackView 添加当您想附加一个按钮到按钮stackView时使用
btnsStackView.addArrangedSubview(btn)
UILabels和UIImageView也一样
检查这个,可能会有帮助
for i in 0...5
{
let headerView:UIView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.size.width, height: self.view.bounds.size.height))
if(i % 2 == 0)
{
headerView.backgroundColor = UIColor.blue
}
else
{
headerView.backgroundColor = UIColor.yellow
}
self.stttq.addArrangedSubview(headerView)
}
let headerView:UIView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.bounds.size.width, height: self.view.bounds.size.height))
headerView.backgroundColor = UIColor.black
self.stttq.insertArrangedSubview(headerView , at:0)
谢谢,忘记堆栈视图了。我现在将调查此事创建嵌套StackView(而不仅仅是func insertArrangedSubviewUIView,at:Int)以在正确的位置插入元素有什么特别的原因吗?没有,但我更喜欢这样,因为分布总是平等的