1

我在具有 UITapGestureRecognizer 的 UIView 上使用 UITableView 时遇到一些问题。如果我单击 UITableViewCell,则背景不会更改为所选的(因为没有收到触摸)。

我的假设是,如果您将子视图添加到父视图,子视图将能够处理触摸并且一切仍然有效。然而,事实并非如此。如果我点击 UITableviewCell,则点击由此父视图处理,并且未选择单元格。

我已经尝试将“UITapGestureRecognizer”子类化以忽略来自 UITableViewCell 的触摸事件:(单点触控代码)

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

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

有什么想法可以让我的表格视图在带有 UITapGestureRecognizer 的 UIView 上工作吗?

如果我从父视图中删除“UITapGestureRecognizer”,表格视图会正常运行。

谢谢马特

4

1 回答 1

5

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

于 2013-07-16T18:38:33.053 回答