gpt4 book ai didi

ios - Swift:如何根据宽度排列按钮?间距都相等吗?

转载 作者:行者123 更新时间:2023-11-30 12:12:47 26 4
gpt4 key购买 nike

好的,所以我有一个按钮数组,根据分配给它们的文本调整宽度大小(使用 sizeToFit()) - 这意味着标题为“StackOverflow”的按钮会比标题为“Stack”的按钮长如标题。

我有一个容器 UIView,它的宽度是固定的,高度是使用(按钮的行数 * 每个按钮的高度)计算的,因此高度始终是正确的。

我需要以编程方式在容器 View 上排列这些可变宽度按钮(没有约束,使用数学),以便没有一个按钮超出右边缘,这意味着它们或多或少准确地填充了容器 View 的宽度。我成功地将所有按钮放入容器 View 上的 3 行中(不是按宽度,而是按数组顺序),如下所示:

//cont = container view
func organizeHashBtns()
{
var numPerRow = Int(3)
var numRows = Int(hashButtons.count/numPerRow)
var rowsAdded = Int(0)

//just in order at first
while rowsAdded < numRows {
var index = rowsAdded*numPerRow
//self.addSubview(cont)

for i in index...index+3
{
hashButtons[i].center = CGPoint(x: (cont.bounds.width/3) * CGFloat(i), y: cont.bounds.height/2)
cont.addSubview(hashButtons[i])
}

rowsAdded+=1
}
}

但是,我无法弄清楚如何根据按钮的单独宽度和整个容器的宽度来确定按钮的排列顺序。我怎样才能做到这一点?如何将较长的按钮与较短的按钮分组,以便充满按钮的行都具有相同的宽度?

最佳答案

UIStackView 实际上上手非常简单。我所展示的就像您在 Interface Builder 中构建它一样,但您可以轻松地在代码中复制相同的行为。诀窍在于垂直 > 水平 View 的嵌套,并将内容分布设置为“等间距”。

enter image description here

关于ios - Swift:如何根据宽度排列按钮?间距都相等吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45847840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com