在UIView上使用具有UITapGestureRecognizer的UITableView时遇到一些问题。 如果我点击UITableViewCell,背景不会改变为所选的背景(因为没有接收到触摸)。
我假设如果你将一个子视图添加到父视图,那么子视图将能够处理触摸并且一切仍然有效。但是,这不是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”,则表视图正常。
谢谢马特
答案 0 :(得分:5)
创建UITapGestureRecogizer时,将setCancelsTouchesInView属性设置为NO。这应该允许您的UITableViewCell接收触摸。