使用自定义drawRect代码创建UIButton LIKE控件

时间:2013-10-09 17:08:33

标签: ios objective-c uibutton core-graphics uicontrol

我想创建一个像UIButton一样的自定义形状。我需要它将touchUpInside发送到目标,如按钮,但我想在按钮状态发生变化时使用drawRect更改按钮外观。

我在网上看到很多有关不对UIButtonUIControl进行子类化的相互矛盾的事情。

  1. 那么可以接受的方式是什么?

  2. 如果答案是UIControl,那么如何使用“touchUpInside”方法实施beginTracking

  3. 为什么我们不能继承UIButton。我已经读过关于它是一个类集群但没有使用UIButtonTypeCustom的事情,因为它不起作用,但为什么会这样呢?

  4. 我希望有人可以对此有所了解,或者指出一些好的阅读。

    谢谢。

1 个答案:

答案 0 :(得分:1)

当我想要自定义按钮时,我遇到了同样的问题。我还阅读了很多帖子似乎没有以正确的方式进入子类UIButton。在您的情况下,我建议继承UIButton并覆盖setHighlighted:方法以调整选择按钮。我有一个名为UIButton的{​​{1}}子类,可以在lightdesign/LDGradientButton找到。随意看看绘图代码。就我而言,我使用LDGradientButton,但如果我这样做,我可能会使用CALayers