Внешний вид прокси – альтернатива setShadowImage для iOS 5?

Привет, я использую этот код, чтобы установить теневое изображение моего навигатора:

if ([self.navigationController.navigationBar respondsToSelector:@selector(shadowImage)]) { [[UINavigationBar appearance] setShadowImage:[UIImage imageNamed:@"nav-bar-shadow"]]; [[UIToolbar appearance] setShadowImage:[UIImage imageNamed:@"tool-bar-shadow"] forToolbarPosition:UIToolbarPositionAny]; } 

Однако, похоже, это только iOS 6 (хотя я не могу сказать точно – я не могу найти документацию об этом в любом месте). Он не работает на iOS 5.

Есть ли какая-то альтернатива – глобальная настройка изображения под навигационной панелью? Я думал о пользовательском UIView, но как это сделать глобально?

Ты можешь:

  1. Добавьте подзону, содержащую теневое изображение, на ваш viewController.view
  2. Добавьте подвью, содержащий теневое изображение, к вашему [[UIApplication sharedApplication] keyWindow] , который добавит изображение во всем мире в ваше окно. Тем не менее, это может стать немного уродливым, например, при отображении модального контроллера.
  3. Вы можете подклассифицировать UINavigationBar , сделать некоторое волшебство с subviews там, а затем инициализировать свой навигационный [[UINavigationController alloc] initWithNavigationBarClass:[YourNavBarSubclass class] toolbarClass:[UIToolbar class]] через [[UINavigationController alloc] initWithNavigationBarClass:[YourNavBarSubclass class] toolbarClass:[UIToolbar class]]

shadowImage – только ios6:

 @property(nonatomic,retain) UIImage *shadowImage NS_AVAILABLE_IOS(6_0) UI_APPEARANCE_SELECTOR; 
Interesting Posts
Давайте будем гением компьютера.