0

現在、ボタンにアニメーションを追加して、次のように表示しています

            @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

誰でも高度なアニメーションの使用を手伝ってもらえますか

4

2 に答える 2

3

シュガーキューブを見たことがありますか?これは非常に人気があり、BubbleWrap と並んで、rubymotion で最もよく使用される gem の 1 つです。アニメーション関連のメソッドのコレクションが増えており、新しいブロック構文を使用しています (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
}
于 2013-02-02T18:47:27.683 に答える
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
于 2013-01-31T14:59:27.233 に答える