首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Swift:如何根据宽度排列按钮?都等间距吗?

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

Stack Overflow用户
提问于 2017-08-24 03:22:53
回答 1查看 397关注 0票数 0

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

我有一个容器高度,它是设置的宽度,高度是用(numRows of button*每个按钮的高度)计算的,所以高度总是正确的。

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

代码语言:javascript
运行
复制
//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
        }
    }

但是,我不知道如何根据按钮的宽度和整个容器的宽度来确定按钮的排列顺序。我该怎么做呢?如何将较长的按钮与较短的按钮组合在一起,以使充满按钮的各行都具有相同的宽度?

EN

回答 1

Stack Overflow用户

发布于 2017-08-26 01:49:24

开始使用UIStackView实际上是件轻而易举的事情。我所展示的就好像你是在Interface Builder中构建的,但是你可以很容易地在代码中复制相同的行为。诀窍在于垂直>水平视图的嵌套,并将内容分布设置为“等间距”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45847840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档