在NSMutableArray中存储对象时,我无法更新对象的属性,例如背景颜色或"隐藏" UIView的财产。
NSMutableArray *myArray;
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];
myView.backgroundColor = [UIColor blueColor];
[self.view addSubview:myView];
myArray[0] = myView;
//myArray[0].backgroundColor = [UIColor redColor];
((UIView *)myArray[0]).backgroundColor = [UIColor redColor];
我的第一次尝试被注释掉了,它没有编译,因为myArray [0]返回类型" id"所以编译器不能识别backgroundColor属性。
对于我的第二次尝试,我将它转换为UIView,因此它识别backgroundColor属性,但代码不起作用(背景仍为蓝色)。
是否正在转换为UIView创建我的视图副本,因此不更新我打算更新的视图?如何使用UIViews数组来实现这一点?
答案 0 :(得分:2)
首先你需要初始化数组
NSMutableArray *myArray = [[NSMutableArray alloc]init];
然后将对象添加到数组中使用
[myArray addObject:myView];
最后使用您的代码更改第一个对象的背景颜色
((UIView *)myArray[0]).backgroundColor = [UIColor redColor];