7

在我的一个观点中,我需要为 UIImageView 的框架属性设置动画,并且在执行此操作时,我想在导航栏的标题视图中显示进度条(UIProgressView)。问题是如果我注释掉以下动画块进度条按预期顺利更新。另一方面,由于以下动画,进度条在几个地方停止并再次增加。

//add message bubble
[UIView animateWithDuration:0.3
                      delay:0
                    options:UIViewAnimationOptionAllowUserInteraction
                  animations:^
 {
     animationBubbleImageView.alpha = 1;
 }
                 completion:^(BOOL finished)
 {
     [self removeAutoCorrectionAndHighlight];
     [UIView animateWithDuration:0.3
                           delay:0
                         options:UIViewAnimationOptionAllowUserInteraction
                      animations:^
      {
          CGRect bubbleFrame = CGRectMake(animationBubbleImageView.frame.origin.x,
                                          animationBubbleImageView.frame.origin.y,
                                          bubbleSize.width,
                                          bubbleSize.height);

          [animationBubbleImageView setFrame:bubbleFrame];
          messageLabel.alpha = 1;
      }
                      completion:^(BOOL finished)
      {
          [self sendSubviewToBack:textView];
          [self.delegate moveBubbleToTableCell];
      }];
 }];

动画块不会阻塞主线程,但进度视图不流畅的原因是什么?

更新:我想要实现的是 IOS 中的 MessagesApp 气泡动画。当输入的消息变成气泡并飞到它的位置时,进度条应该缓慢增加。

如果我在没有动画进度条增量正常的情况下尝试相同的操作。

4

2 回答 2

1

尝试将进度条动画与气泡动画放在同一动画中。或者将它们全部放入一个动画组中。

于 2013-02-07T13:22:20.533 回答
-1

您是否尝试过 Instruments 来查看发生了什么?

疯狂猜测:您还可以检查两个视图是否在不经意间重叠。

如果可行,您还可以尝试按照“爸爸”的建议将动画组合在一起。

最好的,阿科斯

于 2013-02-12T07:50:23.370 回答