从 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 获取操作的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS11 键盘后面扩展 UIScrollView 插图
UIScrollView 中的触摸事件发送到后面的 tableview