iOS 中的连续动画?

Continuous animation in iOS?

就我而言,我对内容有看法。我想在 UILongPressGestureRecognizer 事件上滚动此内容:

我不能简单地使用 scrollView,所以我使用了 CATransform3D 结构和 animateWithDuration:... 方法。问题是我不知道应该滚动多长时间(滚动动画的持续时间)。第二个问题是当触摸位置(长按手势)发生变化时应该调用动画 - 这看起来很容易但可能会影响最终解决方案。

如何解决此类问题?

我不确定我是否正确理解了你的问题,在这里我分享了一个方法,它监听 longPressRecognizer 并在用户按下该视图时为该视图设置动画。当用户停止按下时,视图动画回到其默认状态。您可以通过向 if/else if's 添加位置检查语句来检查用户手势是否满足您的位置条件。希望对您有所帮助。

- (void)longPressed:(UILongPressGestureRecognizer *)recognizer {
    UIView *longPressView = self.longPressView;
    if (recognizer.state == UIGestureRecognizerStateBegan) {
        [UIView animateWithDuration:longPressDuration
                              delay:0.f
                            options:UIViewAnimationOptionCurveLinear|UIViewAnimationOptionBeginFromCurrentState
                         animations:^{
                             //do stuff
                         }
                         completion:^(BOOL finished) {
                             if (finished) {
                                 //long press exceeded time limit: do stuff
                             }
                         }];
    }
    else if (recognizer.state == UIGestureRecognizerStateEnded) {
        [UIView animateWithDuration:longPressDuration/2.0
                              delay:0.f
                            options:UIViewAnimationOptionCurveEaseInOut|UIViewAnimationOptionBeginFromCurrentState
                         animations:^{
                             //do stuff
                         }
                         completion:nil];
    }
}