为数组中的每个对象创建一个UIButton

时间:2015-10-09 11:45:15

标签: swift uibutton swift2

大家好我想用编程方式从数组中的每个对象创建一个UIButton

之类的东西
for answer in answers { 
  //create button
}

但是如何为所有这些按钮分配一个随机且唯一的变量?

喜欢var randomvar = UIButton()

3 个答案:

答案 0 :(得分:3)

当我不熟悉OOP x时,我遇到了这个问题。

基本上处理对象时的变量只是指向内存中地址的指针。

带有对象的数组实际上是一个带有指向所有唯一对象的指针的数组,在这种情况下,这些对象是UIButton的。

所以在你的for循环中,你必须在另一个数组中添加这些按钮。

var buttons = [UIButton]()

for answer in answers {
    let btn = UIButton()
    ...
    buttons.append(btn)
}

然后,您可以通过buttons访问每个唯一按钮来访问它们。

buttons[2].setTitle("test 2", forControlEvent: .Normal)

答案 1 :(得分:2)

遍历阵列并为每个项目创建按钮。可以直接将其添加到视图中,也可以将其保存到数组中以供以后访问

public static int countDistinct(int[] arr, final int index) {
    boolean contains = false;

    if (arr == null || index == arr.length) {
        return 0;
    } else if (arr.length == 1) {
        return 1;
    } else if (arr[index] != -1) {
        contains = true;
        for (int i = index + 1; i < arr.length; i++) {
            if (arr[index] == arr[i]) {
                arr[i] = -1;
            }
        }
    }

    return countDistinct(arr, index + 1) + (contains ? 1 : 0);
}

答案 2 :(得分:1)

更好的方法是创建一个数组属性:

var array: [UIButton]?

并在循环内创建一个按钮并将其添加到此数组中。

如果您需要访问任何按钮,可以通过索引访问它。