创造&动态添加按钮到scrollview

时间:2016-04-13 01:46:03

标签: ios swift

我有以下代码,可根据获取的数据创建按钮。创建按钮后,它们将添加到滚动视图中。 它们应该水平显示。

我可以确认有数据,但它在模拟器中显示了奇怪的东西(参见附件截图)。我的实施有什么问题?

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)
}

enter image description here

1 个答案:

答案 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")。如果你确定你的数据源包含数据,你可以简单地为你的按钮标题打开它。如果您使用可选绑定更好。