【问题标题】:IOS | Arranging buttons in multiple stack viewsIOS |在多个堆栈视图中排列按钮
【发布时间】:2020-07-22 03:20:00
【问题描述】:

我想在 UIView 中动态添加四到五个按钮。我的视图必须连续包含 2 个按钮,并根据按钮的数量包含 2 或 3 行。这样做的最佳方法是什么?由于开销,我不想使用集合视图。我正在考虑在垂直堆栈视图中添加多个水平堆栈视图。但我被困在堆栈视图的创建上。按钮的标题由 Array 中的服务提供。请建议我这样做的最佳方法。

PS:图片仅供参考。我需要的视图应该只有 4 到 5 个按钮

【问题讨论】:

  • 使用for循环并添加stackview和按钮
  • 如何在同一个for循环中将按钮添加到水平堆栈视图和垂直堆栈视图中
  • 您应该尝试使用 UICollectionView 实现此布局。
  • 一个包含水平堆栈视图的垂直堆栈视图...两个用于 4 个按钮,3 个用于 5 个按钮。试一试...如果遇到问题,请返回并发布您遇到问题的实际代码。
  • UICollectionView 用于 4 或 5 个单元格,这些单元格都是可见的(即无需滚动),这将是矫枉过正且效率低下,并且可能比其他方法更困难(例如堆栈视图或简单设置相对约束)。

标签: ios swift uibutton uikit


【解决方案1】:

谈到使用循环的想法,如果您在变量中包含布局信息,例如

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)
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多