大家好我想用编程方式从数组中的每个对象创建一个UIButton
。
for answer in answers {
//create button
}
但是如何为所有这些按钮分配一个随机且唯一的变量?
喜欢var randomvar = UIButton()
?
答案 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]?
并在循环内创建一个按钮并将其添加到此数组中。
如果您需要访问任何按钮,可以通过索引访问它。