0

我有一个interface包含 subview 的视图touchWheel。单击最小化按钮时,interface我想执行转换并将视图发送到屏幕的右下角。问题是我想“分离”touchWheel视图并将其与父视图分开发送到角落interface,紧随其后(实际上是淡出)。

当我尝试这个时,我遇到了一个问题。我的动画最初效果很好touchWheel,并根据需要发送到底角。什么时候touchWheel到它的目的地大约一半时,我制作动画interface以便它跟随touchWheel

一旦interface开始动画,它似乎可以控制touchWheeltouchWheel改变路线。

由于它是其父视图,因此似乎interface仍然保留了控制权。touchWheel

- (void)hideInterfaceButtonClicked : (id) sender
{

    [[NSNotificationCenter defaultCenter] postNotificationName:@"RemoveGrey" object:self];

   //Remove Views & transform
   [touchWheel removeViews];
   interfaceHidden = YES;

      //Send Interface to corner

[UIView animateWithDuration:1.25
                  delay:0.0
                options:UIViewAnimationCurveEaseIn
             animations:^{
                 // Move to the right

                 CGAffineTransform translateInterface = CGAffineTransformMakeTranslation(437,200); 
                 // Scale
                 CGAffineTransform scale = CGAffineTransformMakeScale(0.135,0.135);   

                 // Apply them to the view
                 self.transform = CGAffineTransformConcat(scale, translateInterface);

                self.alpha = 0.0;

             } completion:^(BOOL finished) {
                 NSLog(@"Animation Has Stopped");
                 [[NSNotificationCenter defaultCenter] postNotificationName:@"hiddenInterfaceViewNeeded" object:self]; //after MoveView finishes


             }]; 



}

对其他事物进行touchWheel子视图interface会产生其他问题,这会使事情进一步复杂化。

任何想法如何解决这个问题?非常感谢任何提示:)

4

1 回答 1

2

您可以执行以下操作:

  1. 移动touchWheelinterface的超级视图,使用它重新计算其框架,convertRect:toView:以便touchWheel看起来具有相同的窗口坐标。
  2. 将两个视图动画化到它们的最终位置。
  3. 在动画的完成块中,与第 1 步相反:制作touchWheel的子视图interface,再次重新计算其帧。

It doesn't seem too complicated, but there's a caveat: you may want to temporarily disable the maximize button (or whatever the appropriate control is) to prevent the maximize action during the animation. Otherwise, this approach will cause unpredictable results.

于 2012-04-21T10:50:59.667 回答