2014-01-09 47 views
0

我想用UIButton來定製自定義動畫,所以我決定用超類UIButton創建自己的類。然後我超負荷touchesBegan方法那樣定製動畫後的UIButton動作

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
[UIView animateKeyframesWithDuration:0.5 
           delay:0 
          options: 0 
          animations:^{ 

           [UIView addKeyframeWithRelativeStartTime:0 
                 relativeDuration:0.5 
                  animations:^{ 
                   self.transform = CGAffineTransformScale(self.transform, 0.7, 0.7); 
                  }]; 

           [UIView addKeyframeWithRelativeStartTime:0.5 
                 relativeDuration:0.5 
                  animations:^{ 
                   self.transform = CGAffineTransformIdentity; 
                  }]; 

          } 
          completion:^(BOOL finished) { 
           [super touchesBegan:touches withEvent:event]; 
          }];} 

動畫工作正常,但沒有發生後。它看起來像調用超級方法不完成處理程序工作(不知道爲什麼)。我的問題是:什麼可以改變,以類似的方式延遲UIButton動作創建自己的類?

編輯:我想創建自己的類,因爲我的應用程序中有很多按鈕,我希望它們的行爲相同。

+0

動畫完成後,您會發生什麼? – hgwhittle

+0

您不需要創建自定義按鈕來執行此操作。只需在觸摸下觸摸動畫或使用標準按鈕觸摸動畫,然後在動畫完成塊中放入想要運行的任何代碼。 – rdelmar

回答

0

UIButton動作通常被分配到觸發UIControlEventTouchUpInside,應該在touchesEnded方法中解決,而不是touchesBegan。