IOS |在多个堆栈视图中排列按钮
我想在UIView中动态添加四到五个按钮。“我的视图”必须在一行中包含2个按钮,并根据按钮的数量包含2或3行。哪种方法最好?。由于开销,我不想使用集合视图。我正在考虑在垂直堆栈视图中添加多个水平堆栈视图。但是我被困在堆栈视图的创建上。按钮的标题由数组中的服务提供。请告诉我最好的方法 附:图片仅具有代表性。我需要的视图应该只有4到5个按钮IOS |在多个堆栈视图中排列按钮,ios,swift,uibutton,uikit,Ios,Swift,Uibutton,Uikit,我想在UIView中动态添加四到五个按钮。“我的视图”必须在一行中包含2个按钮,并根据按钮的数量包含2或3行。哪种方法最好?。由于开销,我不想使用集合视图。我正在考虑在垂直堆栈视图中添加多个水平堆栈视图。但是我被困在堆栈视图的创建上。按钮的标题由数组中的服务提供。请告诉我最好的方法 附:图片仅具有代表性。我需要的视图应该只有4到5个按钮 如果您的布局信息包含在变量中,例如 let numberOfRows: Int let buttonsPerRow: [Int] 然后,在构建布局时,您可以像
如果您的布局信息包含在变量中,例如
let numberOfRows: Int
let buttonsPerRow: [Int]
然后,在构建布局时,您可以像这样在其上循环:
let verticalStackView = UIStackView()
//configure distribution, axis...
for i in 0..<numberOfRows {
let horizontalStackView = UIStackView()
//configure distribution, axis...
for _ in 0..<buttonsPerRow[i] {
let b = UIButton()
//configure button
horizontalStackView.addArrangedSubview(b)
}
verticalStackView.addArrangedSubview(horizontalStackView)
}
let verticalStackView=UIStackView()
//配置分发、axis。。。
对于0中的i..使用for循环并添加stackview和Button如何将按钮添加到同一for循环中的水平堆栈视图和垂直堆栈视图中您应该尝试使用UICollectionView实现此布局。一个包含水平堆栈视图的垂直堆栈视图。。。4个按钮2个,5个按钮3个。试试看。。。如果遇到问题,请返回并发布您遇到问题的实际代码。UICollectionView
对于4或5个单元格,这些单元格都是可见的(即无需滚动),这将是一种过度的操作,效率相当低,并且可能比其他方法(例如堆栈视图或简单地设置相对约束)更困难。