0

我有一个 UITableViewController。我想在底部有一个“工具栏式”组件。

我从使用背景图像和按钮开始。在界面生成器中,我将它们添加到 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 听起来是个好主意,还是有一种简单的方法来确保固定位置的“工具栏式”组件。

重申一下——我的“工具栏式”组件只需要在我的 UITableView 的按钮上是一个按钮。单个按钮具有我用图像创建的渐变色背景。

4

2 回答 2

1

从UIBarButtonItem 类的 initWithImage:style:target:action: 方法的文档中对“image”参数的描述:

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

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

作为替代方案,您可以创建一个 UIButton(使用您的彩色图像),然后将其设置为您的 UIBarButtonItem 的自定义视图,如此处所建议。如果你走那条路,可能还需要设置 UIButton 的边界以匹配 UIBarButtonItem 的边界(请参阅讨论)。

于 2010-03-26T17:56:39.127 回答
0

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

于 2010-03-22T22:32:04.313 回答