我曾问过一些关于将a继承为子类的问题UIButton,有几个人告诉我我不应该对a进行子类化UIButton。子类化a的负面影响是UIButton什么?而且我知道这很模糊,但是将a子类化的其他替代方法还有哪些UIButton?
3 回答
紫衣仙女
TA贡献1839条经验 获得超15个赞
这是因为它的UIButton
特殊之处在于,+buttonWithType:
为了使其按预期工作,需要一些复杂性/微妙性/限制(即,特别是供您定义的其他替代)。它比通常的-initWithFrame:
(和-initWithCoder:
,如果在XIB中使用)要多。IDK为什么框架作者允许这些细节泄漏到我们的域中,但这是我们现在必须解决的问题。限制是您的实现不得依赖(即扩展)预设的系统按钮样式。您必须假设UIButtonTypeCustom
作为UIButton
子类的起点。
沧海一幻觉
TA贡献1824条经验 获得超5个赞
如果您只是想通过自己的“子视图”来寻找更轻量的东西,则应该将UIControl子类化。UIButton子类化UIControl并可以处理事件,例如:
[mySubclassedButtonFromUIControl addTarget:self action:@selector(_doSomething:) forControlEvents:UIControlEventTouchUpInside];
UIControl子类化UIView,因此您可以在UIControl子类包含的任何视图上干净地layoutSubviews,并避免UIButton附带的不必要的视图。从本质上讲,您只是在创建自己的“ UIButton”,而避免了不必解决的行为和功能。
- 3 回答
- 0 关注
- 542 浏览
添加回答
举报
0/150
提交
取消