在我们重新排序单元格时如何在UITableView内容视图中添加图像?

时间:2012-11-06 12:59:45

标签: objective-c uitableview cocoa-touch uibutton

我有一个tableview,我提供重新选择单元格的选项。但是,当用户重新排列单元格时,我不想显示删除图标。所以我确实喜欢this删除删除按钮。

在正常模式下..

enter image description here

编辑模式后(即不可删除但可重新排列的模式)..

enter image description here

这里发生了两件事。一个是每个单元的附件视图具有图像(表示重新排列)。第二件事是,所有字符串都从左侧屏幕移动了一些点。这个差距实际上是删除符号。由于我隐藏了删除按钮,因此会出现一个空白区域。

好的,这就是问题所在。我现在想在每个单元格的内容视图中添加一些带有图像的自定义按钮。

所以,我在tableView: cellForRowAtIndexPath:

中添加了以下代码
if (isEditable)
{
    selectionButton = [UIButton buttonWithType:UIButtonTypeCustom];

    UIImage *img = [UIImage imageNamed:@"blue_button.png"];

    selectionButton.frame = CGRectMake(-25, 10, img.size.width, img.size.height);

    [selectionButton setBackgroundImage:img forState:UIControlStateNormal];

    [selectionButton addTarget:self action:@selector(buttonClickAction:) forControlEvents:UIControlEventTouchUpInside];

    [cell.contentView addSubview:selectionButton];
}

蓝色按钮为24 * 24像素。

我之所以使用-25作为“x”值:

如果我给出正值或零,则按钮将与单元格文本重叠。下面的图像表示x值为0时。

enter image description here

但是对于x = -25,

enter image description here

我需要什么:

由于我添加了具有负x值的按钮,因此整个图像宽度(24像素)将隐藏在x值(25像素)中。因此未调用按钮操作buttonClickAction:。我想在用户点击图像时更改图像(在选定/未选择模式之间切换)。

有没有办法调用按钮的动作方法?或者我应该创建自定义单元格吗?

只是困惑..

1 个答案:

答案 0 :(得分:0)

将其添加到表视图控制器

- (BOOL) tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
            return NO;
}

它将删除空白区域。