【问题标题】:How can I make UITableView less sensitive to vertical scrolling?如何使 UITableView 对垂直滚动不那么敏感?
【发布时间】:2013-07-15 08:40:19
【问题描述】:

我有超过 10 行的表格视图,并且在每行内我放置了一个水平滚动的滚动视图(您可以像在 Coverflow 中一样翻阅图像)。

问题在于 UITableView 对垂直滚动过于敏感。当我尝试在特定的滚动视图(在任何单元格内)中左右滚动时,一旦表格视图检测到我的手指在 y 轴上的最轻微移动,表格视图就会开始向上或向下滚动。

有没有办法可以改变这一点并为表格视图设置更高的垂直滚动阈值?

【问题讨论】:

    标签: ios uitableview uiscrollview


    【解决方案1】:

    这里有几个建议。试一试,看看他们的感受。

    建议 1

    当您将 tableViewCells 出列时,请尝试调用:

    [tableView.panGestureRecognizer requireGestureRecognizerToFail:cell.scrollView.panGestureRecognizer];

    建议 2

    尝试在您的 tableView 上进行设置:

    self.tableView.delaysContentTouches = NO;

    该属性默认为YES。它将对表格视图单元格内容的触摸延迟几分之一秒,以帮助它识别点击和拖动之间的区别。

    【讨论】:

    • 第一个建议是非常聪明的想法,但并没有太大帮助。第二个建议也是如此(老实说,与我认为可能有效的第一个建议结合使用)。不过感谢您的回答 - 再次,关于建议 1 的聪明想法。
    • 我刚刚意识到第一个建议实际上不起作用,因为这只需要平移手势在表格视图要求绘制的最后一个单元格上失败,在我的例子中是单元格号 3 . 单元格编号 3,一开始,滚动实际上比其他两个要好一些。我会让表格视图需要平移手势才能在所有单元格滚动视图上失败。我不认为有办法设置它?
    • 除非我弄错了,否则要求手势识别器失败可以多次调用。这是一对多的关系。
    • 我是对的。 Apple 甚至在 Collection View 编程指南中提供了一些使用这种技术的示例代码。 developer.apple.com/library/ios/documentation/WindowsViews/…
    • 那么,它将跟踪所有单元格的手势,并要求只有一个失败并且不会滚动?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 2020-06-07
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多