Изображения панели навигации iPhone - PullRequest
4 голосов
/ 11 мая 2009

Я бы хотел заменить кнопку «Назад» и всю панель навигации в своем приложении для iPhone пользовательскими изображениями. Во-первых, возможно ли это? Во-вторых, если да, то как? Спасибо.

Ответы [ 3 ]

17 голосов
/ 10 сентября 2010

Этот код будет изменять все UINavigationBar в вашем приложении.

@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
    UIImage *image = [UIImage imageNamed: @"MyNavigationBar.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
0 голосов
/ 27 декабря 2012

Вы можете использовать этот код для изменения изображения панели навигации и изображения панели вкладок на ваши собственные изображения:

   if([[UINavigationBar class] respondsToSelector:@selector(appearance)])  {//iOS >=5.0
    UIImage *image = [UIImage imageNamed:@"myCustomImage.png"];

    CGSize newSize = CGSizeMake(self.navigationController.navigationBar.frame.size.width, self.navigationController.navigationBar.frame.size.height);
    UIGraphicsBeginImageContext(newSize);
    [image drawInRect: CGRectMake(0, 0, self.navigationController.navigationBar.frame.size.width, self.navigationController.navigationBar.frame.size.height)];


    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    [self.navigationController.navigationBar   setBackgroundImage:newImage  forBarMetrics:UIBarMetricsDefault];

    [[UIToolbar appearance] setBackgroundImage:newImage forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
    [[UITabBar appearance] setBackgroundImage:newImage];
    [[UITabBar appearance] setSelectedImageTintColor:[UIColor cyanColor]];
}
0 голосов
/ 11 мая 2009

Вы не сможете легко изменить внешний вид навигационной панели Apple, и даже если вы сможете, есть большая вероятность, что она пойдет вразрез с их политикой избегания использования частных API. Тем не менее, довольно просто создать собственную похожую панель навигации, используя все пользовательские изображения. Это будет хорошо работать для простых одноразовых экранов, для которых требуется панель навигации, но это будет чудовищно для реализации в сложной иерархии на основе UINavigationController.

Редактировать: похоже, что люди смогли изменить фон, переопределив селектор -drawRect: Пользовательский фон для UINavigationBar? . Я не вижу сообщений о том, были ли изменения одобрены для App Store.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...