【问题标题】:UINavigationController Navigation Bar Image is hiding other backbuttons and custom images?UINavigationController 导航栏图像隐藏其他后退按钮和自定义图像?
【发布时间】:2013-08-18 09:10:35
【问题描述】:
- (UINavigationController *)navigationController {

nav = [[UINavigationController alloc]
                               initWithRootViewController:[self demoController]];

UIImage *image;

// If Iphone/iPod Touch
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    // If iPhone 5 or new iPod Touch
    if([UIScreen mainScreen].bounds.size.height == 568){
        image = [UIImage imageNamed:@"nav.png"];
    } else{
        // Regular iPhone
        image = [UIImage imageNamed:@"nav.png"];

    }
}

UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

[nav.navigationBar addSubview:imageView];

return nav;

}

当我尝试将 leftBarButtonItem 添加为

  - (UIBarButtonItem *)leftMenuBarButtonItem {

UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];

[backButton setBackgroundImage:[UIImage imageNamed:@"main_menu.png"] forState:UIControlStateNormal];

UIBarButtonItem *barBackButtonItem = [[UIBarButtonItem alloc] initWithCustomView: backButton];

[backButton addTarget:self action:@selector(leftSideMenuButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

return barBackButtonItem;

 }

导航时不显示main_menu.png,但如果注释此代码

      // [nav.navigationBar addSubview:imageView];

它将显示main_menu.png,有什么问题,为什么nav.png现在显示其他图像,它被添加为子视图,所以我应该怎么做才能显示其他左或右栏按钮项目,超过nav.png。

【问题讨论】:

    标签: ios uinavigationcontroller uinavigationbar uinavigationitem


    【解决方案1】:

    你不应该将图像添加到图像视图并将其添加为子视图。相反,您应该调用 setBackgroundImage:forBarMetrics: 或使用外观委托来设置导航栏的背景图像。

    【讨论】:

    • 我做到了,但是它改变了状态栏的颜色,在最上面
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    相关资源
    最近更新 更多