【发布时间】:2014-03-05 14:30:30
【问题描述】:
我有一个在手势识别器(双击)触发时启动的动画:
[UIView animateWithDuration:0.3 animations:^{
_scrollView.contentOffset = CGPointMake(x, y);
_scrollViewContentView.frame = someFrame;
_scrollViewContentView.layer.transform =
CATransform3DMakeScale(1.f/_zoomScale, 1.f/_zoomScale, 1.f);
}];
它工作得很好,除了在一种情况下:如果在动画执行之前没有调用scrollViewWillBeginDecelerating 委托方法(只是通过几乎不拖动我的滚动视图)。
我刚刚调用了scrollViewDidEndDragging 方法。我可以等待20 秒然后播放我的动画。除了我的contentOffset 之外,它将正常播放。
委托方法本身什么都不做,它们只是被添加来看看问题可能出在哪里。
我不知道为什么。
编辑:这是我的问题的video。第 1 阶段:减速滚动,第 2 阶段没有。看看最后的位置。阶段1是正确的但不是阶段
【问题讨论】:
-
你是说有时不调用scrollViewWillBeginDecelerating?
-
不,这很正常。我直接停止滚动,因此不会产生减速效果。所以当我这样做时,我的动画就坏了。但我的手势有减速暗示它有效。不知道我是否清除...
-
请您更新您的问题以显示您在何时何地调用此动画?
-
我的意思是你调用它的方法,但视频确实有帮助!
-
我滚动并在之后(可能是 2 秒或 10 分钟)我从一个手势(UITapGesture 双击)启动我的动画块。
标签: ios objective-c uiscrollview contentoffset animatewithduration