navigationItem.rightBarButtonItem需要两个按钮。图像无法显示

时间:2009-10-28 05:52:46

标签: iphone

我必须在导航栏的右侧有两个按钮。所以我创建了一个工具栏,并在其内容视图中添加了两个小节按钮项。如下所示。

UIBarButtonItem *shareButton = [[UIBarButtonItem alloc]
                                    initWithImage:[UIImage imageNamed:@"share-icon-32x32.png"]
                                    style:UIBarButtonItemStyleBordered
                                    target:self action:@selector(showShare)];

    shareButton.width = 30.0f;
    [buttons addObject:shareButton];
    [shareButton release];

其中buttons是一个包含按钮对象的数组。

同样明智的我还有另一个像下面这样的按钮项目

UIBarButtonItem *addButton = [[UIBarButtonItem alloc]
                                      initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
                                      target:self
                                      action:@selector(addDescription)];

        addButton.style = UIBarButtonItemStyleBordered;
        [buttons addObject:addButton];
        [addButton release];

现在将数组添加到工具栏中,如下所示

[toolbar setItems:buttons animated:YES];
    [buttons release];

并将其添加到rightBarButton,如下所示

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]
                                              initWithCustomView:toolbar];
    [toolbar release];

我在右侧栏上有两个条形按钮项目,但我无法将图像显示在共享按钮项目上。它只是一个白色的补丁。任何人都可以告诉我我做错了什么或如何显示图像。

此致

Syed Yusuf

1 个答案:

答案 0 :(得分:1)

来自initWithImage:style:target:action:的文档:

  

源图像中的alpha值用于创建图像 - 不透明值   忽略。

这意味着UIKit使用图像的Alpha通道,而不是RGB像素值。您提供的图像可能完全不透明(没有透明度)和initWithImage:style:target:action:将其解释为白色方块。您必须使用定义图标形状的Alpha通道保存图像。