从viewController更改UIColor以在UIView类中使用

时间:2012-10-19 21:14:53

标签: iphone ios ipad uiview uiviewcontroller

我正在尝试创建一个绘图应用程序,我正在使用颜色发送变量并将其传递给UIView,但我在viewController中有一个更改颜色的邻居但我可以找到一种方法来传递更改UIview的颜色:

ViewController(这项工作很好):

paint *canvas=[[paint alloc]initWithFrame:frame];
    [self.view addSubview:canvas];
    canvas.colorSelected=colorSelected;

我有一个更改颜色选择的按钮:

  • (IBAction为)颜色选择:(ID)发送

但是因为canvas.colorSelected的实例是在设置canvas.colorSelected之后发布的,所以如何更改IBAction的颜色选择,因为如果我创建另一个实例,它将不会指向colorSelected的同一指针。我的问题是如何从viewController中改变frombaction的colorSelected?

2 个答案:

答案 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属性来更新视图的颜色。