2013-07-16 96 views
1

我在UITiew上使用UITableView有一个UITapGestureRecognizer的问题。 如果我点击一个UITableViewCell,背景不会更改为选定的一个(因为没有接收到任何触摸)。与UITapGestureRecognizer的UIView上的UITableView(单元格选择不起作用)

我是在假设,如果你添加一个childview到父视图,childview将能够处理触摸,并且一切仍然会工作。但是,这不是cas。如果我点击一个UITableviewCell,那么点击就是由这个父视图处理的,并且这个单元格没有被选中。

我已经尝试过的子类“UITapGestureRecognizer”忽略来自的UITableViewCell触摸事件: (MonoTouch的代码)

public override bool ShouldReceiveTouch (UIGestureRecognizer recognizer, UITouch touch) 
     { 
      if (touch.View.GetType() == typeof(UITableViewCell)) 
       return false; 
      return true; 
     } 

它不工作,因为我点击一个单元格,“touch.View.GetType() “返回”UIView“,它被忽略。

任何想法的如何使我的tableview与UITapGestureRecognizer的UIView工作?

如果我从父视图中删除“UITapGestureRecognizer”,tableview将正常工作。

感谢马特

+0

你想改变选中的单元格当你点击它时背景改变..? –

+0

是的,但我知道如何更改选定单元格的背景。问题是,当我用UITapGestureRecognizer将视图添加到视图上时,单元格将不会被“选中”,因为水龙头是由父视图处理的 – Matt

回答

5

当您创建UITapGestureRecogizer的setCancelsTouchesInView属性设置为NO。这应该允许你的UITableViewCell接收触摸。

+0

Wauw,只是抬起头看“setCancelsTouchesInView”,我仍然不知道它究竟是什么确实,但它的确解决了我的问题。快速简单:-)谢谢! – Matt

相关问题