0

我正在使用容器 UIView 来容纳 UIImageView 并进行一些自定义绘图。在这一点上,我想在我的子视图上做一些绘图。所以覆盖 drawRect: 在我的容器中 UIView 只会在子视图下方绘制。

有没有办法在我的子视图中重载drawRect:而不对其进行子类化?

我认为方法调配可能是答案,但我希望不是。

(注意:是的,让 UIView 成为 UIImageView 的子视图会更聪明,但不幸的是我现在犯了我的错误。)

4

1 回答 1

0

你确定你的意思是超载而不是覆盖?

重载——创建一个具有相同基本名称但参数不同并因此使用不同选择器的新方法——可以通过将包含新方法的新方法类别添加到现有类来完成。

覆盖——修改现有方法的行为——需要在运行时对类的方法表进行猴子修补(例如,通过调配)或子类化。

于 2010-04-16T23:24:10.940 回答