изменение uinavigationBar нескольких фонов iOS 4.3 - PullRequest
0 голосов
/ 28 февраля 2012

Я использовал приведенный ниже код для изменения фона UINavigationBar:

КОД:

    - (void) drawRect:(CGRect)rect
{
    UIImage *image = [UIImage imageNamed:@"NavBar.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}

так что теперь мне нужно более одного фона NavBar2.png ....

как этого добиться?

Спасибо

Ответы [ 3 ]

0 голосов
/ 28 февраля 2012

Логика тегов, упомянутая RA, определенно вам поможет.

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

- (void)setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics
0 голосов
/ 29 февраля 2012

Я решаю это, используя свой исходный код в качестве фона изображения, затем ставлю titleView для панели навигации

UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 165, 44)];
    UIImageView *imgv = [[UIImageView alloc] initWithFrame:aView.frame];
    imgv.image = [UIImage imageNamed:@"NavBar01.png"];
    [aView addSubview:imgv];
    self.navigationController.navigationBar.topItem.titleView =  aView;
    [aView release];
    [imgv release];
0 голосов
/ 28 февраля 2012

Попробуйте этот код.

- (void) drawRect:(CGRect)rect
{
if(navigationBar.tag == 0){
    UIImage *image = [UIImage imageNamed:@"NavBar.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
else if(navigationBar.tag == 1)
    UIImage *image = [UIImage imageNamed:@"NavBar1.png"];
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
}
...