我正在尝试创建一个绘图应用程序,我正在使用颜色发送变量并将其传递给UIView,但我在viewController中有一个更改颜色的邻居但我可以找到一种方法来传递更改UIview的颜色:
ViewController(这项工作很好):
paint *canvas=[[paint alloc]initWithFrame:frame];
[self.view addSubview:canvas];
canvas.colorSelected=colorSelected;
我有一个更改颜色选择的按钮:
但是因为canvas.colorSelected的实例是在设置canvas.colorSelected之后发布的,所以如何更改IBAction的颜色选择,因为如果我创建另一个实例,它将不会指向colorSelected的同一指针。我的问题是如何从viewController中改变frombaction的colorSelected?
答案 0 :(得分:0)
真的很难理解你要做什么
如果你想设置背景颜色,请执行以下操作:
canvas.backgroundColor = colorSelected
如果您想通过设置colorSelected
值来更改颜色
你必须覆盖paint
类中的setter
做这样的事情:
in Paint.m
- (void) setColorSelected:(UIColor*) color {
_colorSelected = color;
self.backgroundColor = color;
}
现在,当您执行canvas.colorSelected=[UIColor redColor];
时,您的画布将设置colorSelected
变量并更改背景颜色
答案 1 :(得分:0)
您需要在视图控制器中创建一个实例变量来保存对 paint 对象的引用。您可以将 paint 对象分配给实例变量,而不是像在已发布的代码中那样使用局部变量。然后在您的按钮处理程序中,您可以调用实例变量上的colorSelected
属性来更新视图的颜色。