背景颜色

时间:2016-01-03 04:48:47

标签: objective-c uibutton background-color

这是一个简单的问题,但我没有运气就找到了答案。

我想访问按钮的背景颜色,将其保存到变量中,以后可以访问它。

所以,我在视图控制器中声明了一个实例属性:

@property UIColor *variable;

,在我的方法中:

-(IBAction)buttonPressed:(id)sender {
    variable = sender.backgroundColor;
}

但是我收到了错误:

  

在_strong id警告类型的对象中找不到属性backgroundcolor。

哪里出错?

1 个答案:

答案 0 :(得分:0)

您有三种选择:

  1. sender属性从id更改为UIButton *

    - (IBAction)buttonPressed:(UIButton *)sender {
        self.variable = sender.backgroundColor;
    }
    
  2. 调用backgroundColor getter方法,而不是使用backgroundColor属性。

    - (IBAction)buttonPressed:(id)sender {
        self.variable = [sender backgroundColor];
    }
    
  3. sender上使用强制转型。

    - (IBAction)buttonPressed:(id)sender {
        self.variable = ((UIButton *)sender).backgroundColor;
    }
    
  4. 您遇到的主要问题是您无法对id类型的对象使用属性引用。