【问题标题】:change UIColor from viewController to be use in UIView Class从 viewController 更改 UIColor 以在 UIView 类中使用
【发布时间】:2012-10-19 21:14:53
【问题描述】:

我正在尝试创建一个绘画应用程序,我看到一个带有颜色的变量并将其传递给 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?

【问题讨论】:

    标签: iphone ios ipad uiview uiviewcontroller


    【解决方案1】:

    真的很难理解你在做什么

    如果您想设置背景颜色,请执行以下操作:

    canvas.backgroundColor = colorSelected

    如果您想通过设置colorSelected 值来更改颜色
    您必须覆盖 paint 类中的设置器
    做这样的事情:

    in Paint.m

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 举个例子?添加实例变量?如果您不知道如何将实例变量添加到您的类中,那么我建议您多学习一下 Objective-C 编程语言。学习该语言的基础知识将真正有助于您的编码工作。简短的回答是将实例变量添加到 .h 文件中的 @interface 部分。那么这个变量就可以在类中的任何方法中使用了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多