1

为什么我问这个的一些背景:

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

所以我做了一个工作,我在开火时将所有路径绘制到 uiimageview 上(不使用视网膜且平坦度较低)scrollViewWillBeginDragging:。我将此图像视图添加到我的滚动视图并暂时停止在 drawRect 中绘制路径。

然后我从滚动视图中删除这个图像视图,并在其中任何一个触发时将其设置为 nil:( scrollViewDidEndDragging:willDecelerate:仅当decelerate == NOscrollViewDidEndDecelerating:

这一切都很好。绘图很快,滚动也很快。

但是在以下情况下会出现一个问题:

  1. 用户开始滚动并快速释放屏幕,因此滚动视图开始减速。
  2. 然后用户在滚动视图仍在减速时点击它,导致滚动视图立即停止。

此时两个scrollViewDidEnd:函数都没有被调用。所以我的图像视图没有被删除并保留在内存中(更糟糕的是,非视网膜、低平坦度曲线仍然可见)。

我的问题:

我如何知道用户在减速时点击 UIScrollView 的时间?

4

1 回答 1

0

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

于 2013-05-28T09:47:32.307 回答