我有一个包含按钮的UIBarButtonItem,我在其上设置了按下/未按下状态的自定义背景图像。按下的图像向下移动4px,因此未压缩的文本垂直偏离中心。我知道我可以使用[button setTitleEdgeInsets:UIEdgeInsetsMake(10.0, 10.0, 0.0, 0.0)]
来更改文本标签的位置,但是我可以仅针对某个控件状态(未压缩)执行此操作吗?
如果这意味着继承UIButton,我是否自己在drawRect中处理所有绘图?
答案 0 :(得分:1)
不,如果您将UIButton
子类化,则不必自己处理绘图。一种方法是简单地键值观察子类中的enabled
和selected
属性,然后只要状态发生变化就将边缘插入调整为适当的值。 This question here relates to observing the button for state changes.