【问题标题】:How can I change images for UIBarButtonItems of UINavigationController in QLPreviewController如何在 QLPreviewController 中更改 UINavigationController 的 UIBarButtonItems 的图像
【发布时间】:2013-09-16 05:28:09
【问题描述】:

我正在使用 QLPreviewController 来显示 pdf。我想更改 QLPreviewController 的 UINavigationBar 和 UIBarButtonItems 的背景图片。

我正在使用此代码:

for (id object in controller.childViewControllers)
{
    if ([object isKindOfClass:[UINavigationController class]])
    {
        UINavigationController *navController = object;

        [navController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar_1x.png"] forBarMetrics:UIBarMetricsDefault];
        NSLog(@"items count ====%d",[[navController.navigationBar items] count]);

        if ([[navController.navigationBar items] count] > 0)
        {
            UINavigationItem *navItem = [[navController.navigationBar items] objectAtIndex:0];
            navItem.rightBarButtonItem.image = [UIImage imageNamed:@"pdf30.png"];

        }
    }
}

通过使用上面的代码,我改变了导航栏的背景图像。但我无法更改 barbuttonitems 的背景图片。

请帮助我。提前谢谢.....

【问题讨论】:

标签: iphone ios objective-c uinavigationcontroller qlpreviewcontroller


【解决方案1】:

如果你愿意,你可以自定义栏按钮..试试这样..

UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];

    [backButton setImage:[UIImage imageNamed:@"pdf30.png"] forState:UIControlStateNormal];
    [backButton addTarget:self action:@selector(didTapBackButton:) forControlEvents:UIControlEventTouchUpInside];
    backButton.frame = CGRectMake(0.0f, 0.0f, 64.0f, 41.0f);
    UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];

    self.navigationItem.leftBarButtonItem = backButtonItem;
}

【讨论】:

  • 我想更改 QLPreviewController 中的条形按钮。
【解决方案2】:
UIImage*resizedImage = [[UIImage imageNamed:@"navbar_2x.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(10, 12, 12, 10)];
id navbar =[UINavigationBar appearance];
id barbutton =[UIBarButtonItem appearance];
//this customises the navigation bar
[navbar setBackgroundImage:resizedImage forBarMetrics:UIBarMetricsDefault];
UIImage *backButton = [[UIImage imageNamed:@"backwhite.png"]  resizableImageWithCapInsets:UIEdgeInsetsMake(10 , 18, 10 , 18)];

// this customises the back bar button item in the navigation bar
[barbutton setBackButtonBackgroundImage:backButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];


// this for other bar button items
[barbutton setBackgroundImage:backButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

【讨论】:

    猜你喜欢
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2015-10-11
    相关资源
    最近更新 更多