0

コンテナー UIView を使用して UIImageView を格納し、カスタム描画を行います。この時点で、サブビューの上に描画を行いたいと思います。したがって、コンテナー UIView で drawRect: をオーバーライドすると、サブビューの下にのみ描画されます。

サブビューで drawRect: をサブクラス化せずにオーバーロードする方法はありますか?

メソッドの入れ替えが答えかもしれませんが、そうではないことを願っています。

(注: はい、UIView を UIImageView のサブビューにする方が賢明だったでしょうが、残念ながら私は今自分の間違いにコミットしています。)

4

1 に答える 1

0

オーバーライドではなくオーバーロードを意味していますか?

オーバーロード (基本名は同じだが引数が異なるため、セレクタが異なる新しいメソッドを作成する) は、新しいメソッドを含む新しいメソッド カテゴリを既存のクラスに追加することで実現できます。

オーバーライド (既存のメソッドの動作の変更) には、実行時にクラスのメソッド テーブルにモンキー パッチを適用する (たとえば、スウィズリングによって) か、サブクラス化する必要があります。

于 2010-04-16T23:24:10.940 に答える