我有以下代码,可根据获取的数据创建按钮。创建按钮后,它们将添加到滚动视图中。 它们应该水平显示。
我可以确认有数据,但它在模拟器中显示了奇怪的东西(参见附件截图)。我的实施有什么问题?
override func viewDidLoad() {
super.viewDidLoad()
fetchRecipeCategory()
for var i = 0; i < self.category.count; i++ {
let frame1 = CGRect(x: 20, y: 20 + (index * 45), width: 45, height: 45 )
let button = UIButton(frame: frame1)
button.setTitle("\(category[i].name)", forState: .Normal)
button.backgroundColor = UIColor.blackColor()
self.categoryScrollView.addSubview(button)
}
print(category[0].name)
}
答案 0 :(得分:1)
您需要为每个按钮使用不同的y frame
值。您的按钮创建使用index
作为其y帧,并且您没有增加它。
由于您使用for循环,因此可以使用i
值。
let frame1 = CGRect(x: 20, y: 20 + (i * 45), width: 45, height: 45 )
此代码将创建按钮的垂直列表。如果要水平列出按钮,请更改每个按钮的x frame
值
let frame1 = CGRect(x: 20 + (i * 45), y: 20, width: 45, height: 45 )
至于截图,看起来按钮标题设置为Optional("data")
。如果你确定你的数据源包含数据,你可以简单地为你的按钮标题打开它。如果您使用可选绑定更好。