我需要根据获取的值的数量以编程方式创建按钮,并且每个按钮需要具有相对于其文本长度的宽度。 我当前的实现具有固定宽度,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)
}
答案 0 :(得分:8)
在按钮上设置文本后,使用
button.sizeToFit()
然后读取按钮的宽度并为其添加一个合适的数字(无论文本长度如何,所有按钮的数字都相同,并为您提供所需的结果。
或者,您可以向按钮添加填充;在这种情况下,您只需要完成第一步。