Swift 2.1 - 使动态按钮的宽度相对于文本长度

时间:2016-04-13 14:30:51

标签: ios xcode swift

我需要根据获取的值的数量以编程方式创建按钮,并且每个按钮需要具有相对于其文本长度的宽度。 我当前的实现具有固定宽度,X位置也以固定长度递增。

实现这一目标的过程是什么,所以我可以使用附加截图的按钮?

for var i = 0; i < self.category.count; i++ {
    let frame1 = CGRect(x: 0 + (i * 45), y: 20, width: 80, height: 40 )
    let button = UIButton(frame: frame1)
    button.setTitle("\(category[i].name!)", forState: .Normal)
    button.backgroundColor = UIColor.blackColor()
    self.categoryScrollView.addSubview(button) 
}

enter image description here

1 个答案:

答案 0 :(得分:8)

在按钮上设置文本后,使用

button.sizeToFit()

然后读取按钮的宽度并为其添加一个合适的数字(无论文本长度如何,所有按钮的数字都相同,并为您提供所需的结果。

或者,您可以向按钮添加填充;在这种情况下,您只需要完成第一步。