2013-02-18 46 views
0

我的代碼中有一個UIButton,它可以穩定地在屏幕上移動。目前,當用戶按下按鈕時,alpha變爲0,並且它只是消失。我想要做的是在按下按鈕/消失後運行單獨的動畫。似乎很容易,但抓住的是我需要按下按鈕時按鈕的確切點運行動畫。我正在爲如何實現這一目標畫上一個空白。任何幫助都感激不盡!我會在下面發佈一些相關的代碼。如何用Xcode中的動畫替換按鈕

-(void)movingbuttons{ 
    movingButton2.center = CGPointMake(x, y); 
    displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(moveObject)]; 
    [displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; 
} 

-(void)moveObject{ 
    movingButton2.center = CGPointMake(movingButton2.center.x , movingButton2.center.y +1); 
} 


-(IBAction)button2:(id)sender { 
    [UIView beginAnimations:nil context:NULL]; 
    [movingButton2 setAlpha:0]; 
    [UIView commitAnimations]; 

} 
+0

看到我更新的動畫,增加了一個更完整的例子。 – 2013-02-18 17:18:23

回答

0

替換爲您的動畫:

[UIView animateWithDuration:0.25 
      animations:^{ 
       self.movingbutton2.alpha = 0.0; 
          // modify other animatable view properties here, ex: 
          self.someOtherView.alpha = 1.0; 
      } 
      completion:nil]; 

只是一個NIT採摘點,但在您的視圖控制器的.xib文件中的按鈕正確掛接到IBOutlets和IBActions?

UPDATE

您不限於修改,在你的方法一個按鈕。你可以在動畫塊中添加你想要的任何代碼(參見上面的udated axample)。

UIView動畫properties,那裏有一個動畫部分。

另一種方法可能是(我只是用alpha爲例):

[UIView animateWithDuration:1.0 
       animations:^{ 
        self.movingButton2.alpha = 0.0; 
       } 
       completion:^{ 
        [UIView animatateWithDuration:0.25 
             animations:^{ 
              self.someOtherView.alpha = 1.0; 
             } 
             completion:nil]; 
    }]; 

這將更有可能保證動畫將hapen此起彼伏。

+0

好吧,你知道我將如何讓第二個動畫在消失按鈕的同一點上運行? – Dave123 2013-02-18 17:30:02

+0

@ Dave123我會在第一個塊中修改你想要的屬性,就像我給出的第一個例子。 – 2013-02-18 17:36:31

+0

好的,謝謝你的幫助! – Dave123 2013-02-18 22:39:45

1

替換下面的代碼你BUTTON2行動和落實someOtherMethodWithAnimation方法與你想:)

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:1]; 
movingButton2.alpha = 0; 
[UIView commitAnimations]; 
[self performSelector:@selector(someOtherMethodWithAnimation) withObject:nil afterDelay:1.0]; 
+0

好吧,你知道我如何在消失的按鈕的同一點上運行第二個動畫嗎? – Dave123 2013-02-18 17:30:30

+0

您消失的動畫運行1秒,而某些OtherMethodWithAnimation在第一個動畫完成時完全在同一點運行。 – Ushan87 2013-02-18 17:33:48