2013-01-31 70 views
0

即時通訊目前加入動畫按鈕和查看像如何將動畫添加到rubymotion應用程序中?

  @button = UIButton.buttonWithType(UIButtonTypeRoundedRect) 
      @button.frame = [[0,0],[50,50]] 
      @button.setTitle("Click to move",forState:UIControlStateNormal) 
      @button.addTarget(self, action:'animate_button',forControlEvents:UIControlEventTouchUpInside) 
      view.addSubview @button 

     def animate_button 
      @button.frame = [[0,0],[0,0]] 
      UIView.beginAnimations(nil,context:nil) 
      UIView.setAnimationDuration(0.05) 
      UIView.setAnimationDelay(0.2) 
      UIView.setAnimationCurve(UIViewAnimationCurveEaseOut) 
      @button.frame = [[280,400],[50,50]] 
      UIView.commitAnimations 
    end 

誰能幫助使用先進的動畫

回答

0

首選使用的塊語法,它看起來像這樣

def animate_button 
    @button.frame = [[0,0],[0,0]] 

    animations = lambda { @button.frame = [[280,400],[50,50]] } 
    UIView.animateWithDuration(0.2, delay:0.05, options:UIViewAnimationOptionCurveEaseOut , animations:animations, completion: nil) 
end 
3

你有沒有看在sugarcube?它非常受歡迎 - 與BubbleWrap一起,它是rubymotion最常用的寶石之一。它的動畫相關的方法越來越多的收集,並使用新的塊語法(像什麼Paul.s提到)

最通用的是UIView.animation { animations_go_here }

UIView.animation { 
    my_view.frame = new_frame 
    # or apply a transform to a layer 
    my_view.layer.transform = CATransform3DMakeScale(2, 2, 1) 
} 

Core Animation Function Reference更多的變換功能。

但是,如果你想要做一個「共同」的動畫,你可以做很多的一些UIView的補充:

my_view.slide :left, 100 
my_view.move_to CGPoint.new(10, 20) # or [10, 20] works, too 
my_view.fade_out 

這些都採取類似的選項:

my_view.fade_out(duration: 1) # 1 second fade out 
my_view.fade_out(delay: 1) # 1 second later, fade out 

,你可以鏈他們很容易:

my_view.slide :left, 120 { 
    my_view.fade_out { 
    my_view.removeFromSuperview 
    } 
} 

他們可以進行分組:

UIView.animate { 
    my_view.slide :left, 120 
    my_view.fade_out 
} 
相關問題