use*_*648 5 objective-c uiscrollview ios uievent
可以想象UIScrollView嵌入式(子视图)UIView,以列排列.在iOS6和之前的版本中,滚动视图可以配置为当您用手指轻拂时,嵌入的视图即使初始触摸位于其中一个子视图上也不会接收到触摸事件.但如果您在不轻弹的情况下触摸子视图,则滚动视图会确定这不是滚动操作,而是将触摸事件转发到嵌入视图.如果您希望能够拖放嵌入的UIViews,这是非常方便的行为UIScrollView.
在iOS 7中,文档指出设置UIScrollView属性delaysContentTouches将导致触摸事件延迟,直到UIScrollView决定是否正在滚动.但事实上,这似乎并不起作用.如果滚动触摸事件在其中一个子视图上,则子视图立即接收触摸事件并响应它们.因此,如果子视图被编程为拖放,则在滚动视图也滚动时开始拖动.
似乎此行为的模型已更改,因为iOS 5/6在确定这是否为滚动操作时都会抑制触摸事件.现在有一些新方法可以在UIScrollView决定滚动后取消触摸事件.但是,如果拖放代码也开始移动子视图,这显然没有用.
我的问题:UIScrollView当您通过抚摸子视图启动滚动操作时,有没有办法阻止iOS 7 在其子视图上调用低级触摸事件?当我说"低级别"时,我的意思是实际的触摸事件,而不是使用手势识别器.我确信简单地将delaysContentTouches属性设置为YES不起作用.
这个问题完全破坏了一些非常复杂的代码,这些代码在iOS 5和6中运行顺畅而精美; 到目前为止,我发现在UIScrollView确定是否正在滚动之前,我没有办法告诉它将事件抑制到其子视图.事件经历,然后在滚动视图确定滚动之后触发取消触摸事件.看起来底层模型已被重新定义为更糟糕,或者这是一个错误.任何见解将不胜感激.
小智 0
你确定它可以在 iOS5/6 上运行吗?根据我的经验和像UIScrollview DelaysContentTouches 问题这样的帖子,它不起作用。
也许显示它在 iOS5/6 上运行但在 iOS7 上不起作用的示例代码将有助于回答您的问题。
| 归档时间: |
|
| 查看次数: |
1167 次 |
| 最近记录: |