Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IOS |在多个堆栈视图中排列按钮_Ios_Swift_Uibutton_Uikit - Fatal编程技术网

IOS |在多个堆栈视图中排列按钮

IOS |在多个堆栈视图中排列按钮,ios,swift,uibutton,uikit,Ios,Swift,Uibutton,Uikit,我想在UIView中动态添加四到五个按钮。“我的视图”必须在一行中包含2个按钮,并根据按钮的数量包含2或3行。哪种方法最好?。由于开销,我不想使用集合视图。我正在考虑在垂直堆栈视图中添加多个水平堆栈视图。但是我被困在堆栈视图的创建上。按钮的标题由数组中的服务提供。请告诉我最好的方法 附:图片仅具有代表性。我需要的视图应该只有4到5个按钮 如果您的布局信息包含在变量中,例如 let numberOfRows: Int let buttonsPerRow: [Int] 然后,在构建布局时,您可以像

我想在UIView中动态添加四到五个按钮。“我的视图”必须在一行中包含2个按钮,并根据按钮的数量包含2或3行。哪种方法最好?。由于开销,我不想使用集合视图。我正在考虑在垂直堆栈视图中添加多个水平堆栈视图。但是我被困在堆栈视图的创建上。按钮的标题由数组中的服务提供。请告诉我最好的方法

附:图片仅具有代表性。我需要的视图应该只有4到5个按钮


如果您的布局信息包含在变量中,例如

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个单元格,这些单元格都是可见的(即无需滚动),这将是一种过度的操作,效率相当低,并且可能比其他方法(例如堆栈视图或简单地设置相对约束)更困难。