按住按钮时如何更改具有选定颜色的单元格

Posted

技术标签:

【中文标题】按住按钮时如何更改具有选定颜色的单元格【英文标题】:How to change the cell with selected color when pressing and holding on to the button 【发布时间】:2013-03-22 06:21:49 【问题描述】:

我有一个应用程序,其中我在 tableView 上有两个按钮,其余的作为单元格。我一直在为我的单元格使用背景图像视图。像这样`

 UIImageView* img = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"cell_with_arrow.png"]];
            [cell setBackgroundView:img];
            [img release]; 

然后我将选定的背景颜色更改为

UIView *violetColor = [[UIView alloc] init];
  violetColor.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"trans.png"]];
        cell.selectedBackgroundView = violetColor;
        [violetColor release];

在单元格中对我来说一切正常,但在我的两个单元格中,我添加了两个按钮。选择并按住此按钮时,我还需要更改添加该按钮的背景单元格的选定背景颜色。我已经完成了,但是只有当我松开按钮时,单元格背景颜色才会改变。不是当我按住那个按钮时。当我按住它时,我也需要改变它。我现在就是这样的

UIView *contentView = (UIView *)[sender superview];
    UITableViewCell *cell = (UITableViewCell *)[contentView superview];
    NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];

  [self tableView:self.tableView didSelectRowAtIndexPath:indexPath];

在按钮动作中。但是在单元格中当我按住颜色变化时,不带按钮为什么?有人可以帮帮我吗?

【问题讨论】:

对该 UIButton 使用 UIControlEventTouchUpInside 而不是 UIControlEventTouchDownInside 如果您按照 Rajan 所说的方式编写了触摸事件,上述代码将完美运行 我没有说它不起作用。但问题是当我按住该按钮时它不起作用.. 【参考方案1】:

您可以使用按钮的UIControlEventTouchDown 事件来实现您的要求,而不是UIControlEventTouchUpInside

希望对你有帮助。

【讨论】:

以上是关于按住按钮时如何更改具有选定颜色的单元格的主要内容,如果未能解决你的问题,请参考以下文章

在 WinForm C# 中单击按钮时更改表格单元格颜色

UITableView 选择单元格时所有组件都更改了背景颜色

更改所选单元格的背景颜色?

JTable:单击按钮时更改单元格背景

在更改单元格背景时重新计算

更改表格视图中所有单元格按钮的颜色