UIView 动画交互
Posted
技术标签:
【中文标题】UIView 动画交互【英文标题】:UIView animation interaction 【发布时间】:2012-03-14 13:33:49 【问题描述】:我在长按手势上有动画帧大小的 UIView。
- (IBAction)longPressGesture:(id)sender
NSTimeInterval duration = 1;
CGRect newFrame = self.view.frame;
switch (((UIGestureRecognizer *)sender).state)
case UIGestureRecognizerStateBegan:
newFrame.size.height += 100;
break;
case UIGestureRecognizerStateEnded:
newFrame.size.height -= 100;
break;
default:
break;
[UIView animateWithDuration:duration animations:^
self.view.frame = newFrame;
];
在 tap_begin 帧高度增加到最大尺寸(heigh + 100),在 tap_end 减小到原始尺寸(heigh - 100)。问题是当我点击时,帧开始增长,然后在增长时我松开手指,第二个动画从大帧开始,而不是从当前状态开始。
例如,帧从高度 200 开始动画到 300,在动画中间(当帧高度为 250 时)我松开手指,帧高度立即设置为 300 并开始减小到 200。
如何实现可以中断第一个动画并从当前高度(例如 250)开始第二个动画的行为?
或者第一个动画必须首先完成并且只有在第二个动画开始之后才能完成的行为?
【问题讨论】:
【参考方案1】:您可以尝试使用animateWithDuration:delay:options:animations:completion:
并包含选项setAnimationBeginsFromCurrentState
。
【讨论】:
以上是关于UIView 动画交互的主要内容,如果未能解决你的问题,请参考以下文章