UIScrollView在减速期间捕捉用户点击

时间:2013-05-27 22:27:36

标签: objective-c uiscrollview uiimageview uibezierpath

我问这个问题的一些背景:

我有一个UIScrollView,我直接使用UIBezierPaths绘制。当有许多/长路径并且用户开始滚动滚动视图时,将无法在drawRect中绘制所有路径。

所以当scrollViewWillBeginDragging:发射时,我做了一个工作,我将所有路径绘制到uiimageview(不使用视网膜,平面度较低)。我将此imageview添加到我的scrollview并暂时停止在drawRect中绘制路径。

然后我从scrollview中删除了这个imageview,当其中任何一个触发时将其设置为nil: scrollViewDidEndDragging:willDecelerate:(仅在decelerate == NO时) scrollViewDidEndDecelerating:

这一切都很棒。绘图速度快,滚动速度快。

但是在以下情况下存在一个问题:

  1. 用户开始滚动并快速释放屏幕,因此滚动视图开始减速。
  2. 然后用户在滚动视图仍在减速时轻敲滚动视图,导致滚动视图立即停止。
  3. 此时不会调用scrollViewDidEnd:个函数。因此,我的图像视图不会被移除并保留在记忆中(更糟糕的是非视网膜,低平坦度曲线仍然可见)。

    我的问题:

    我如何知道用户何时在减速时点按UIScrollView?

1 个答案:

答案 0 :(得分:0)

我自己找到了答案: - (void)当用户在减速期间点击滚动视图时,scrollViewWillBeginDragging再次被称为