【问题标题】:UITableView on a UIView with UITapGestureRecognizer (cell selection doesn't work)带有 UITapGestureRecognizer 的 UIView 上的 UITableView(单元格选择不起作用)
【发布时间】:2013-07-16 18:13:10
【问题描述】:

在具有 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 使我的 tableview 在 UIView 上工作吗?

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

谢谢马特

【问题讨论】:

  • 您想在点击时更改所选单元格的背景更改..?
  • 是的,但我知道如何更改选定单元格的背景。问题是,当我使用 UITapGestureRecognizer 在视图上添加表时,单元格不会被“选中”,因为点击是由父视图处理的

标签: ios uiview uitableview xamarin.ios


【解决方案1】:

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

【讨论】:

  • 哇,刚刚查找了“setCancelsTouchesInView”,我仍然不知道它到底做了什么,但它确实解决了我的问题。快速简单 :-) 谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-12-28
  • 2015-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-28
  • 2014-12-07
  • 1970-01-01
相关资源
最近更新 更多