setImage:forState不适用于UIButton的子类

时间:2017-03-23 13:36:12

标签: ios objective-c uibutton

我创建了一个继承自UIButton的类RadioButton,并重写方法layoutSubViews,其中重置了self.imageView和self.titleLabel的框架,当我调用方法setImage:forState:of RadioButton实例时,它不起作用,但是方法radioButton.imageView.image = [UIImage imageNamed:@""]工作。这是一个有趣的问题,如果有人知道原因并分享原因,我非常感激。

1 个答案:

答案 0 :(得分:0)

当我们设置标题时,按钮的图像需要在代码下面使用

按钮

[button setTitle:@"Your Title" forState:UIControlStateNormal];

图片

[button setImage:[UIImage imageNamed:@"Your Image Name"] forState:UIControlStateNormal];

why should not we use titleLabel

  

请勿使用标签对象设置文本颜色或阴影颜色。   相反,使用setTitleColor:forState:和   setTitleShadowColor:forState:这个类的方法来制作它们   变化。

     

即使按钮没有,titleLabel属性也会返回一个值   已显示。系统的属性值为nil   的按钮。

why should we use setTitle

  

使用此方法设置按钮的标题。标题你   指定从按钮的关联标签中派生其格式   宾语。如果您为该标题设置了标题和属性标题   按钮,该按钮更喜欢使用属性标题   之一。

     

至少应设置正常状态的值。如果一个   title没有为某个州指定,默认行为是使用   与UIControlStateNormal状态关联的标题。如果值为   未设置UIControlStateNormal,则属性默认为a   系统价值。

For Image