1

我想为每个导航项(按钮)(通用)设置背景图像。

这些图像应该看起来如何?

是否有固定尺寸或可以创建重复的背景图像?

那么如何以编程方式更改此背景图像?

感谢帮助

更新:

我找到了用于更改此按钮背景的代码,但它不起作用。

UIImage *barButton = [UIImage imageNamed:@"button_background.png"];
    [[UIBarButtonItem appearance] setBackgroundImage:barButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

而且我不知道应该是哪个维度。

PS我想改变按钮的背景,就像你可以改变背景颜色(self.navigation.controller.nvigationBar.tintColor..)

4

3 回答 3

2

下面的代码可能会解决您的问题

UIButton *backBtn     = [UIButton buttonWithType:UIButtonTypeCustom];  
UIImage *backBtnImage = [UIImage imageNamed:@"button_background.png"]  ;  
[backBtn setBackgroundImage:backBtnImage forState:UIControlStateNormal];  
[backBtn addTarget:self action:@selector(goback) forControlEvents:UIControlEventTouchUpInside];  
backBtn.frame = CGRectMake(0, 0, 54, 30);  
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithCustomView:backBtn] ;  
self.navigationItem.leftBarButtonItem = cancelButton;
于 2012-05-05T13:53:38.583 回答
0

恐怕你需要创建自定义后退按钮

检查此代码

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
                               initWithImage:[UIImage imageNamed:@"yourImage.png"]
                                       style:UIBarButtonItemStyleBordered 
                                      target:nil 
                                      action:nil];

self.navigationItem.backBarButtonItem = backButton;
[backButton release];

让我知道它是否有效

干杯

于 2012-05-05T12:50:28.503 回答
0

类别呢?例如,您可以这样做:

@interface UIBarButtonItem(JFAdditions)

- (id)initWithTitle:(NSString *)title image:(UIImage*)img;//add target and action if need

@end

 @implementation UIBarButtonItem(JFAdditions)

 - (id)initWithTitle:(NSString *)title image:(UIImage*)img
 {
        UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
        //add background image and text on button, target and action if need, also
    self = [self initWithCustomView:btn];

    return self;
}
于 2012-05-05T13:45:40.330 回答