如何在UITableViewController中创建自定义UIToolbar组件?

时间:2010-03-21 21:48:01

标签: uitableview uitoolbar

我有一个UITableViewController。我想在底部有一个“toolbar-ish”组件。

我开始使用背景图片和按钮。在界面构建器中,我将它们添加到iPhone屏幕的底部。我遇到的问题是背景图像和按钮随表格滚动。我显然需要将它固定在底部。

在线找不到太多方向,我决定自定义UIToolbar以查看我想要的内容,因为默认情况下该位置是固定的。在我的UITableViewController的initWithNibName中,我有:

UIImage *shuffleButtonImage = [UIImage imageNamed:@"shuffle_button.png"];
        NSArray* toolbarItems = [NSArray arrayWithObjects:
                                 [[UIBarButtonItem alloc]   initWithImage:shuffleButtonImage  
                                                            style:UIBarButtonItemStylePlain
                                                            target:self
                                                            action:@selector(push:)],
                                 nil];
        [toolbarItems makeObjectsPerformSelector:@selector(release)];
        self.toolbarItems = toolbarItems;

我现在遇到的问题是“shuffleButtonImage”没有正确显示。按钮的形状显示正常,但它是白色的,因此看起来不像图像。

有谁知道为什么要显示“白色图像”而不是实际图像?

自定义UIToolbar也是个好主意,或者有一种简单的方法来确保固定位置“toolbar-ish”组件。

重申 - 我的“toolbar-ish”组件只需要是我UITableView按钮上的一个按钮。单个按钮具有我用图像创建的渐变颜色背景。

2 个答案:

答案 0 :(得分:1)

来自documentation中“image”参数对initWithImage的描述:style:target:action:UIBarButtonItem类的方法:

  

条形图上显示的图像来自此图像。如果此图像太大而无法放在条形图上,则会缩放以适合该图像。通常,工具栏和导航栏图像的大小为20 x 20磅。源图像中的alpha值用于创建图像 - 忽略不透明值。

基本上,您提供的图像用作蒙版,为实际按钮图像创建轮廓/阴影。我不相信你可以改变UIBarButtonItem的这种行为。

作为替代方法,您可以创建一个UIButton(带有您的彩色图像),然后将其设置为UIBarButtonItem的自定义视图,如建议的here。如果你走这条路线,也可能需要设置UIButton的边界以匹配UIBarButtonItem的边界(参见this讨论)。

答案 1 :(得分:0)

您的图片可能显示为空白,因为您的资源中找不到它。在定义shuffleButtonImage之后设置一个断点并检查它是否为零。