iOS アプリケーションのアクセシビリティ プロジェクトに取り組んでいます。アクセシビリティは宣伝どおりには機能しないため、VoiceOver によって認識される領域 (描画とタッチ認識の両方) をコントロール ビューの「自然な」境界を超えて拡張するために、サブクラスでaccessibilityFrameとaccessibilityActivationPointをオーバーライドする必要があります。pointInside:withEventしたがって、の VoiceOver 境界を変更するには、UIButtonそのクラスをサブクラス化し、これら 3 つのメソッドを追加する必要があります。これを行うUILabelには、コードを含む別のサブクラスを追加する必要があります。
これらのメソッドのコードを中央の場所にリファクタリングすることはできますが、継承を使用してこれをよりエレガントに行うことができるかどうか疑問に思っていました。UIViewこのコードを(maybe called UIViewAccessible) のサブクラスに入れてから、の代わりにから継承される、 から継承さUIButtonれる と呼ばれるのサブクラスを作成したいと思います。これは可能ですか、またはこのようなことをカテゴリで行うことができますか?UIButtonAccessibleUIButtonUIViewAccessibleUIView
編集:ドキュメントによると、カテゴリでこれを実際に達成することはできません:
カテゴリで宣言されたメソッドの名前が、元のクラスのメソッド、または同じクラス (またはスーパークラス) の別のカテゴリのメソッドと同じである場合、どのメソッド実装が使用されているかについての動作は未定義です。ランタイム。
これを行う他の方法はありますか?