使UITableViewCell表现得像一个真正的按钮

时间:2013-03-27 01:19:58

标签: ios objective-c cocoa-touch cocoa uikit

我想让UITableViewCell表现得像真正的按钮。

直到知道我一直在使用

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath` 

技巧,但这不是最佳选择,因为它在点击/拖动/释放时的行为不像button

如果您点击一个单元格行并将手指拖过单元格,则在释放手指时不会选中它(但按钮会在相同的情况下启动其操作)。

是否有任何简单的方法可以使UITableViewCell表现得像真正的按钮,而无需在UIButton内插入实际的cell

3 个答案:

答案 0 :(得分:1)

您可以创建包含按钮的表格视图单元格,将按钮标记设置为行,这样您就可以在收到按钮事件时锻炼该按钮所属的行。只需确保在返回重用的表格视图单元格时重置按钮标记,而不是创建新的单元格。

答案 1 :(得分:0)

对UITableViewCell进行子类化并使用以下方法:

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
  [super setHighlighted:highlighted animated:animated];
  if (highlighted) {
    _backgroundImageView.image = [UIImage imageNamed:@"img_h"];
  }
  else {
    _backgroundImageView.image = [UIImage imageNamed:@"img"];
  }
}

其中img是普通图像,img_h是该图像的突出显示版本。

答案 2 :(得分:0)

一种方法是创建一个大小为您的单元格的UIButtton并将其添加到单元格中。

否则您只需向UITapGestureRecognizer添加UITableViewCell,即可为您完成工作。