Метод перегрузки (в частности, drawRect :) без подклассов - PullRequest
0 голосов
/ 27 октября 2009

Я использую контейнер UIView для размещения UIImageView и создания некоторого пользовательского чертежа. На данный момент я хотел бы сделать некоторые рисунки поверх моего подпредставления. Поэтому переопределение drawRect: в моем контейнере UIView будет рисовать только под подпредставлениями.

Есть ли способ перегрузить drawRect: в моем подпредставлении без его подкласса?

Я думаю, что метод swizzling может быть ответом, но я надеюсь, что нет.

(ПРИМЕЧАНИЕ: да, было бы разумнее, если бы UIView был подпредставлением UIImageView, но, к сожалению, я сейчас совершил свою ошибку.)

1 Ответ

0 голосов
/ 17 апреля 2010

Вы уверены, что имеете в виду перегрузку, а не переопределение?

Перегрузка - создание нового метода с тем же базовым именем, но с другими аргументами и, следовательно, с другим селектором - может быть достигнуто путем добавления новой категории метода, содержащей новый метод, к существующему классу.

Переопределение - изменение поведения существующего метода - потребовало бы либо мартовского исправления таблицы методов класса во время выполнения (например, путем swizzling), либо создания подклассов.

...