См. Также Пользовательский фон UINavigationBar
Я согласен с Дейвом Делонгом: переопределение drawRect не мудро, оно может сломаться когда-нибудь. Кроме того, drawRect
в вашей категории заменяет оригинальный drawRect - у вас нет возможности вызвать super, чтобы получить функциональность по умолчанию.
Обратите внимание, что если вы слушаете изменения в UIDeviceOrientationDidChangeNotification, вы должны знать, что существует шесть ориентаций устройства (обычные четыре, плюс лицевой стороной вверх и вниз).
Часто встречается плохо написанный код, который не учитывает возможность ориентации устройства вверх или вниз.
N.B. Вы также можете получить доступ к текущей ориентации строки состояния пользовательского интерфейса, которая не обязательно совпадает с UIDeviceOrientation!