1

私のUIViewがlayoutSubviewsでカスタムロジックを実行したい場合、UIViewの独自のサブクラスを作成してメソッドを実装することによってこれを達成する唯一の方法はありますか? クラスの特定のインスタンスのためだけにメソッドを実装できることについて、どこかの例から何かを覚えていると思いますが、構文が何であったか、またはそれが問題であるかどうかさえ覚えていません。

4

1 に答える 1

1

その1つのビューに対して何かを実行したい場合は、その1つのビューをサブクラス化してオーバーライドするのが最善の方法です。

すべてのビューで発生させたい場合は、swizzle メソッドを使用して、layoutSubviews を指定した別のメソッドに変更し、そのカテゴリを _prefix.pch ファイルに含める必要があります。

メソッドのスウィズリングは軽視すべきではありませんが、ここで私の説明を確認できます

最初のオプションをお勧めします。サブクラス化してオーバーライドします。[super layoutSubviews] メソッドを呼び出してチェーンを完成させることを忘れないでください。(そのチェーンをブロックすることが意図されていない限り)

于 2012-06-22T22:56:08.643 に答える