【问题标题】:Touch Event on UTableViewControllerUITableViewController 上的触摸事件
【发布时间】:2013-05-07 05:33:34
【问题描述】:

我需要在 UTableViewController 上添加触摸事件

就像会有一个图像 w.r.t.到每个 UICell,因此当用户触摸任何单元格时,相应的图像将对用户可见,图像将仅对用户屏幕可见,其上有触摸事件。当用户将手指从屏幕上抬起时,图像将再次隐藏。

请指导实现这一目标

【问题讨论】:

  • 相应的图像将对用户可见意味着它会出现在像弹出窗口这样的单独视图中吗?请清楚表达您的要求
  • 图像将显示在同一个视图中操作将类似于用户触摸 -> 图像视图在整个视图中可见触摸删除 -> 图像视图将再次隐藏

标签: iphone ios uitableview uitouch


【解决方案1】:

您可以使用 UILongPressGestureRecognizer 更改您的图像。您可以向您的单元格添加手势,您可以在 hangleLongPress 方法中更改您的图像。

UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
    lpgr.minimumPressDuration = 1.0;  //user must hold for 1 second
    [cell addGestureRecognizer:lpgr];


- (void)handleLongPress:(UIGestureRecognizer *)gestureRecognizer
{
    if (gestureRecognizer.state == UIGestureRecognizerStateBegan)
      {
         // ----------------- Make here image visible ----------
      }

      if (gestureRecognizer.state == UIGestureRecognizerStateEnded)
      {
         // ------------ Make here image invisible ----------
      }
}

【讨论】:

  • 是的,它非常接近,但是我怎样才能让图像立即可见,就像 UILongPressGestureRecognizer 需要触摸并按住屏幕一段时间。
  • 您可以添加 UITapGestureRecognizer 而不是 UILongPressGestureRecognizer。
  • 据我所知,保存您的 indexPath 并更改特定行的图像。
  • @prasad 他说我想在那个单元格中保留一段时间,在这种情况下我想让图像可见。
  • 感谢 Dharmbir Choudhary,我错过了 minimumPressDuration :)
【解决方案2】:

请使用单元格内的 UIButton 来显示图像。这将使实施更容易。 你可以像这样实现:

  • 最初将按钮的背景颜色设置为清晰的颜色。这将使它看起来像隐藏。

     button.backgroundColor = [UIColor clearColor];
    
  • 将图像按钮设置为:

     [button setImage: [UIImage imageNamed:@"Default.png"] forState:UIControlStateHighlighted];
    

    这将只显示图像 离开后按下按钮时,它会自动隐藏。

希望它对你有用。

【讨论】:

    猜你喜欢
    • 2018-05-07
    • 2011-08-16
    • 2011-05-07
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    相关资源
    最近更新 更多