2011-08-04 3 views
4

私は何かを購入するために2段階のクリックが必要なアプリストアから購入ボタンを再作成しようとしました。ボタンをアニメーション化して拡大します。これまでのところ、私はこれを持っていますボタンのUIViewアニメーションサイズの変更

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.75]; 

sender.autoresizesSubviews = NO; 
sender.clipsToBounds = NO; 
sender.frame = CGRectMake(63,326,200,37); 

[UIView commitAnimations]; 

ボタンが大きくなるだけで、アニメーション化されません。間違ったことをしたことがありますか、他の誰かがこのタイプのボタン動作を実装していますか?

EDIT:

- (IBAction) buyButtonAction: (UIButton *) sender { 

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1.5]; 
[UIView setAnimationDelay:0.5]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; 

sender.clipsToBounds = NO; 

sender.frame = CGRectMake(CGRectGetMinX(sender.frame) - 30, CGRectGetMinY(sender.frame), 200, 37); 
[sender setTitle:@"Touched Touched Touched" forState:UIControlStateNormal]; 


[UIView commitAnimations]; 
} 

答えて

7

あなたがブロックをサポートしていないのiOSをターゲットにしていますか?

私は、次のような単純なコードを使用して「ボタンでアニメート」を実装しました。

[UIView animateWithDuration:0.5 animations:^{ 
    self.navigationItem.rightBarButtonItem.title = @"Quoting..."; 
}]; 

また、このコードは(それはまた、あなたがそのルートを行けばコメントアウトブロックを含んで)あなたがブロックをサポートできない場合は、タッチのボタンをアニメーション化するだけでなく動作するようです:

-(IBAction) clicked:(UIButton*)sender{ 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.5]; 
    [UIView setAnimationDelay:0]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; 
    //[UIView animateWithDuration:2.5 animations:^{ 

    sender.autoresizesSubviews = NO; 
    sender.clipsToBounds = NO; 
    sender.frame = CGRectMake(63,326,200,37); 

    //sender.frame = CGRectMake(CGRectGetMinX(self.theButton.frame) - 100, CGRectGetMinY(self.theButton.frame), 300, 40); 
    //[sender setTitle:@"Touched Touched Touched" forState:UIControlStateNormal]; 
//}]; 
+0

私は間違ったことをしているに違いないと思う。あなたが提供した長いスニペットを使用しましたが、今すぐサイズが変更され、次にアニメートされるのはボタンの位置を移動することだけです。元の投稿を編集して、コードがどこにあるかを示しました。 – Josh

+0

サンプルのコードにプロパティの変更を落としましたが、setTitleを取り出しました。なぜなら、その部分が適切にアニメーション化されるとは思わないからです。私はコードのボタンのX座標の位置に30を入れました。アニメーションを使用するようにコードを編集し、おそらく有用な結果をもたらすでしょう。 – LrdCasimir

+0

素晴らしいです、ありがとうございます。元々は何が間違っていたのか分かりませんが、今すぐ分けていただきました。 – Josh

関連する問題