从 UIScrollView 后面的 unbutton 获取操作

Posted

技术标签:

【中文标题】从 UIScrollView 后面的 unbutton 获取操作【英文标题】:Get action from unbutton behind UIScrollView 【发布时间】:2014-07-03 17:15:04 【问题描述】:

我有一个具有这种结构的自定义 UITableViewCell

后视图,其中包含 2 个UIButton,前面包含一个 UIScrollView,其中包含标签。

我允许拖动左侧的滚动视图,以便显示后面的按钮。

但我发现了一个问题:这样我无法按下取消按钮,因为在拖动时我会更新内容偏移量,因此它们会留在后面。

我知道我可以管理UIScrollView 的来源而不是内容偏移,但我不太喜欢这种解决方案。

有没有办法拦截UIButton的压力,即使它落后于UIScrollView

P.s.:我正在从事的项目进展迅速,即使我可以开发或翻译来自 Objective C 的代码!

【问题讨论】:

试试scrollView.panGestureRecognizer.cancelsTouchesInView = NO; 【参考方案1】:

这听起来像是通过拖动滚动视图,你的意思是滚动 - 这只是改变内容偏移量。如果不移动滚动视图框架或更改 UIButton 的 z 顺序,您将不会直接从 UI 获得触摸消息。

鉴于这些限制,我可以建议的唯一替代方法是父视图上的 UITapGestureRecognizer(您将其称为后视图。也许是单元格的 contentView)。

点击后,您可以点击测试 UIButtons 并在点击测试成功时调用它们的操作。

一个更好的选择可能是重新组织你的观点。如果您只想将按钮放在滑动门下方,请不要使用滚动视图。仅使用普通的旧视图并在用户平移时移动它的框架。

【讨论】:

我已经考虑过这个解决方案,但是我认为会有另一个解决方案是 UIScrollView 而不是 Panning UIViews。谢谢!!

以上是关于从 UIScrollView 后面的 unbutton 获取操作的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 后面如何与 UIView 交互

在 iOS11 键盘后面扩展 UIScrollView 插图

UIScrollView 中的触摸事件发送到后面的 tableview

UIScrollview,可以一直往下拉到后面可以看到它的父视图

如何根据视图高度值的变化上下移动UIScrollView?

UIScrollView 上的 UIView 菜单