Вы реализуете drawRect:
, а не drawInRect:
, верно? Кроме того, вы убедились, что за пределами этого перехода он действительно работает?
Можете ли вы вставить свою drawRect:
реализацию? Я просто боюсь, что UIImageView устанавливает содержимое своего слоя напрямую, вместо того, чтобы полагаться на drawRect:
, что означает, что ваш drawRect:
не работает.
На самом деле, учитывая, насколько все просто, я бы порекомендовал вам просто подкласс UIView вместо UIImageView. Математика сохранения пропорций при масштабировании изображения для рисования довольно проста.
Другим вариантом является, конечно, создание подкласса UIImageView, а затем просто переопределить setImage:
, чтобы создать новое изображение на основе первого, но нарисовать границу вокруг него, а затем передать его супер. Таким образом, вам вообще ничего не нужно делать с drawRect:
.