Iphone 可以“UIScrollView.zoomToRect”然后执行UIView动画吗?

Iphone 可以“UIScrollView.zoomToRect”然后执行UIView动画吗?,iphone,animation,uiscrollview,Iphone,Animation,Uiscrollview,我有一个全景。我想用它做一些动画,但我想添加一个简洁的小动画,基本上可以将UIScrollView缩放回它开始的位置,然后我可以做一些UIView动画。可能吗 我尝试用scrollView.zoomToRect让一个按钮触发一个方法,这个方法在执行UIView动画的后台线程中调用另一个方法。问题是,无论我做什么,如果在UIScrollView之后有动画,它都不会缩小到正常范围。我只是想让它缩小一些动画,但我不能 在动画块中插入scrollView.zoomToRect方法没有帮助 有人有想法吗?

我有一个全景。我想用它做一些动画,但我想添加一个简洁的小动画,基本上可以将UIScrollView缩放回它开始的位置,然后我可以做一些UIView动画。可能吗

我尝试用scrollView.zoomToRect让一个按钮触发一个方法,这个方法在执行UIView动画的后台线程中调用另一个方法。问题是,无论我做什么,如果在UIScrollView之后有动画,它都不会缩小到正常范围。我只是想让它缩小一些动画,但我不能

在动画块中插入scrollView.zoomToRect方法没有帮助


有人有想法吗?

我不确定这是否符合我自己问题的答案,但以防其他人有疑问,或者其他人有更好的解决方案。我使用了以下代码:

当我按下翻转按钮时打电话

- (void) flipCurrentViewZoomOut {
     // If either view is zoomed in
     if (view1.scrollView.zoomScale != 1 || view2.scrollView.zoomScale != 1 ) {
          if (view1IsVisible == YES) {
              [view1.scrollView zoomToRect:[UIScreen mainScreen].bounds animated:YES];
          } else {
              [bview2.scrollView zoomToRect:[UIScreen mainScreen].bounds animated:YES];
          }
          [UIView beginAnimations:nil context:nil];
          // The duration is enough time for the zoom-out to happen before the second animation methods gets called (flipCurrentView). 
          [UIView setAnimationDuration:0.4];
          [UIView setAnimationDelegate:self];
          // When done, then do the actual flipping of the views (exchange subviews, etc.)
          [UIView setAnimationDidStopSelector:@selector(flipCurrentView)];
          // In order for the zoomToRect to run at all, I need to do some animation, so I basically just move the view 0.01 which is not noticable (and it's animating a flip right after anyway)
          if (view1IsVisible == YES) {
              view1.frame = CGRectMake(-0.01, 0, 320, 480);
          } else {
              view2.frame = CGRectMake(-0.01, 0, 320, 480);
          }
          [UIView commitAnimations];
     } else {
          // If either view hasn't been zoomed, the flip animation is called immediately
          [self flipCurrentView];
     }
}
需要注意的一点是,在我的flipCurrentView方法(翻转视图的第二个动画方法)中,我将view1和view2的帧重置为[UIScreen mainScreen]。在本例中,边界就是我需要的边界。我必须这样做,否则我上面粘贴的动画代码将不会再次运行,因为origin.x将是-0.01,并且它不能从-0.01设置动画到-0.01,所以它将跳过该动画块

如果我做了一些完全错误的事情,请告诉我,有更好的方法来做。总是乐于学习: