轻弹手势期间的内容偏移

Posted

技术标签:

【中文标题】轻弹手势期间的内容偏移【英文标题】:contentoffset during flick gesture 【发布时间】:2010-03-19 07:00:07 【问题描述】:

有没有其他人注意到 UIScrollView 的 contentOffset 在滑动手势期间没有更新?

仅在轻弹手势完全完成后,即轻弹手势完成后才会更新。

手指离开屏幕后,滚动视图继续移动,处于减速阶段。但这并没有反映在 UIScrollView 的 contentOffset 中。

有没有办法在轻弹手势的减速部分跟踪 contentOffset 的位置?

我在顶部有一个 OpenGL 层,我希望它与滚动视图一起移动。虽然似乎无法从滚动视图中获取正确的信息...

想法?

谢谢,

迈克尔

【问题讨论】:

您是否排除了将 EAGLLayer 作为 UIScrollView 内容视图的子层的可能性?这当然是最简单的解决方案。 嗯。即使我要这样做.. id 必须以某种方式将轻弹转换为 OpenGL ......如果 EAGLLayer 是窗口的大小。要么,要么我会滚动一个比屏幕大的 OpenGL 层......我想知道这有多密集......而且我听说混合 UIKIT 和 OpenGL 是不好的。好主意,但我没想到那个...我刚看到这个 calayer 演示视图,其中包含有关动画期间图层位置的信息。我会试试这个。会更新。 【参考方案1】:

在动画期间连续调用UIScrollViewDelegate 方法-scrollViewDidScroll:

【讨论】:

好的,谢谢 hatfinch。这是一个复杂的问题:uiscrollview 嵌入在 mkmapview 中......这有意义吗?我得到了 mkmapview 使用的滚动视图...我敢打赌 mkmapview 已经有一个滚动视图的委托。可以派两个代表吗?我如何查看 mkmapview 内部以了解它如何使用嵌入式滚动视图...?非常感谢! 是的,我最糟糕的怀疑得到了证实.. mkmapview 已经在使用委托...并设置我们自己的中断 mkmapview(具体来说,当我现在滚动时,地图不会加载 bc 委托不是获取有关卷轴的信息)。生病尝试添加一些将消息传递给 mkmapview 的代码 不工作...传递给代理的信息不是最新的。 “不是最新的”是什么意思? 只是 MKMapView 的子类,覆盖 UIScrollView 的委托方法,但一开始向-super发送消息。

以上是关于轻弹手势期间的内容偏移的主要内容,如果未能解决你的问题,请参考以下文章

内容偏移动画损坏

iOS:用于平滑滚动和轻弹视图的手势识别器

在 DateTime DST 重叠期间选择首选偏移量

iOS:啥速度阈值使平移手势成为轻弹?

渲染模板期间抛出异常(“警告:isset 中的偏移类型非法或为空”)

winhex修改bios文件的偏移量怎么解决