我正在开发一个 iOS 应用程序的辅助功能项目。因为可访问性并不像宣传的那样,我必须在子类中覆盖accessibilityFrame
,accessibilityActivationPoint
和pointInside:withEvent
,以便将 VoiceOver 识别的区域(用于绘图和触摸识别)扩展到控制视图的“自然”边界之外。因此,为了更改 a 的 VoiceOver 边界,UIButton
我必须将该类子类化,然后添加这三个方法。为了做到这一点,UILabel
我必须使用代码添加另一个子类,依此类推。
我可以将这些方法中的代码重构到一个中心位置,但我想知道这是否可以通过继承更优雅地完成。我想将此代码放入UIView
(可能称为UIViewAccessible
)的子类中,然后创建一个UIButton
被调用的子类,该子类UIButtonAccessible
继承自该子类,而该子类UIButton
又将继承自. 这是可能的,还是可以用一个类别来完成这样的事情?UIViewAccessible
UIView
编辑:根据文档,您无法通过类别真正实现这一目标:
如果在一个类别中声明的方法的名称与原始类中的方法相同,或者与同一类(甚至是超类)上的另一个类别中的方法相同,则对于在哪个方法实现中使用的行为是不确定的运行。
还有其他方法可以做到这一点吗?