using image or tint color on uinavigationbar in iphone?

前端 未结 7 1750
自闭症患者
自闭症患者 2020-12-24 09:58

how do i show a background image on a navigation bar or give tint color to the navigation bar in a native iphone application??

7条回答
  •  醉梦人生
    2020-12-24 10:23

    Was looking for this a week ago. Found this over here discussions. apple. com/thread.jspa?threadID=1649012&tstart=0 (sorry won't let me post a real link).

    -(void)setBackgroundImage:(UIImage*)image withTag:(NSInteger)bgTag{
    if(image == NULL){ //might be called with NULL argument
        return;
    }
    UIImageView *aTabBarBackground = [[UIImageView alloc]initWithImage:image];
    aTabBarBackground.frame = CGRectMake(0,0,self.frame.size.width,self.frame.size.height);
    aTabBarBackground.tag = bgTag;
    [self addSubview:aTabBarBackground];
    [self sendSubviewToBack:aTabBarBackground];
    [aTabBarBackground release];
    }
    /* input: The tag you chose to identify the view */
    -(void)resetBackground:(NSInteger)bgTag {
        [self sendSubviewToBack:[self viewWithTag:bgTag]];
    }
    

    I made this as a category to UINavigationBar. To set it a background image for a UINavigationBar inside a UINavigationBarController, I did this:

    [navigationControllerForChannels.navigationBar setBackgroundImage:[UIImage imageNamed:@"top_bar.png"] withTag:48151623];
    

    I've had some buginess when updating the tab bar, so you'll want to call

    [self.navigationController.navigationBar resetBackground:48151623];
    

    After any modifications to the bar.

提交回复
热议问题