0

我正在尝试创建一个绘画应用程序,我看到一个带有颜色的变量并将其传递给 UIView 但我在 viewController 中有一个按钮来更改颜色,但我可以找到一种方法来传递颜色的变化到 UIview:

ViewController(这项工作很好):

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

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

  • (IBAction)colorSelection:(id)sender

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

4

2 回答 2

0



如果您想设置背景颜色,真的很难理解您要做什么:

canvas.backgroundColor = colorSelected

如果你想通过设置一个colorSelected值来改变颜色,
你必须在你的paint类中覆盖一个 setter,
做这样的事情:

in Paint.m

- (void) setColorSelected:(UIColor*) color {
    _colorSelected = color;
    self.backgroundColor = color;
}

现在,当您这样做时,canvas.colorSelected=[UIColor redColor];您的画布将设置colorSelected变量并更改背景颜色

于 2012-10-19T21:22:41.037 回答
0

您需要在视图控制器中创建一个实例变量来保存对您的绘画对象的引用。您无需像在发布的代码中那样使用局部变量,而是将绘制对象分配给实例变量。然后在您的按钮处理程序中,您可以调用colorSelected实例变量上的属性来更新视图的颜色。

于 2012-10-19T22:20:56.340 回答