如何用自定义图像替换UIBarButton图像?

时间:2012-12-06 13:17:22

标签: iphone image uibarbuttonitem appearance

我尝试将其设置为自定义并将图像放到其上,但它只更改中间图标,如何更改整个按钮外观?

我想把这个图标:http://cl.ly/image/3B2P0p0p1e1a

但我得到的是:http://cl.ly/image/3M2j2Y292l2K

3 个答案:

答案 0 :(得分:3)

使用此波纹管代码..

- (void)viewDidLoad
{
        UIImage *menuButtonImage = [UIImage imageNamed:@"list.png"];// set your image Name here 
        UIButton *btnToggle = [UIButton buttonWithType:UIButtonTypeCustom];
        [btnToggle setImage:menuButtonImage forState:UIControlStateNormal];
        btnToggle.frame = CGRectMake(0, 0, menuButtonImage.size.width, menuButtonImage.size.height);
        UIBarButtonItem *menuBarButton = [[UIBarButtonItem alloc] initWithCustomView:btnToggle];
        [btnToggle addTarget:self action:@selector(toggleCalendar) forControlEvents:UIControlEventTouchUpInside];
        self.navigationItem.leftBarButtonItem = menuBarButton;
}

答案 1 :(得分:1)

使用下面的代码,它非常简单,可以自定义UIBarButtonItem

- (void)viewDidLoad{
[super viewDidLoad];
    UIBarButtonItem *backButton = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"nav-arrow.png"] style:UIBarButtonItemStylePlain target:self action:@selector(backTabBtnPressed:)];
    self.navigationItem.leftBarButtonItem = backButton;
}

之后创建后退按钮方法。

-(IBAction)backTabBtnPressed:(id)sender{
    //do backbutton coding
}`

答案 2 :(得分:0)

您可以做的是制作与UIBar大小相同的图像(现在您的UIbar是自定义的),然后在其上放置自定义按钮。就这么简单。只需转到你的xib或故事板并加载你作为UIBar制作的UIImage并将其设置在你的视图上,然后将自定义按钮拖到它上面就可以了!