setImage:forState 不适用于 UIButton 的子类

Posted

技术标签:

【中文标题】setImage:forState 不适用于 UIButton 的子类【英文标题】:setImage:forState does not work for subclass of UIButton 【发布时间】:2017-03-23 13:36:11 【问题描述】:

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

【问题讨论】:

你能显示代码吗 你必须展示你的一些代码。我认为... 【参考方案1】:

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

对于按钮

[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

使用此方法设置按钮的标题。你的标题 指定从按钮的关联标签派生其格式 目的。如果您同时为 按钮,该按钮更喜欢使用属性标题而不是这个 一个。

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

For Image

【讨论】:

谢谢你。实际上,我使用 setImage:forState 方法为 UIButton 子类的对象设置图像,但它没有效果。

以上是关于setImage:forState 不适用于 UIButton 的子类的主要内容,如果未能解决你的问题,请参考以下文章

ui:repeat 不适用于地图

cellClass 不适用于角度 ui 网格

inputProps= readOnly: true 不适用于 Material UI 自动完成

formik-material-ui 不适用于 TogglleButtonGroup 组件

ui datepicker 不适用于最小日期

核心 ui 选择不适用于移动用户