2012-04-17 6 views
0

ボタンを左から右に動かすアニメーションを追加しようとしています。インスタンスメソッドbeginAnimations:コンテキスト:見つからない

私は、次のコード

[self.view beginAnimations:nil context:nil]; 
[self.view setAnimationDuration:1.0f]; 
[button setFrame:newFrame]; 
[self.view commitAnimations]; 

を追加したが、私はビルドするとき、私は警告を参照

を「インスタンスメソッドbeginAnimations:コンテキストが見つかりません」私はQuartzCoreフレームワークを追加し、

が含まれています
#import <QuartzCore/CoreAnimation.h> 

誰かが私に行方不明を教えてもらえますか?

ありがとうございます

+1

#import 試して教えてください – Hector

+0

thx Piyush、私は同じエラーを取得しようとしました。 –

答えて

2

石英のヘッダーをインポートする必要はありません。

beginAnimations:context:はクラスメソッドです。あなたはUIViewのインスタンス上でそれを呼び出しています。 setAnimationDurationcommitAnimationsについても同様です。 self.viewUIViewに置き換えるか、代わりにブロックベースのアニメーションを使用します。

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1.0f]; 
[button setFrame:newFrame]; 
[UIView commitAnimations]; 

ブロックベース(iOS4.0以降):修正

あなたのコードを、あなたのコメントに基づいて

[UIView animateWithDuration:1.0 animations:^{[button setFrame:newFrame];}]; 

は、あなたが私のポイントを逃しています。これらの方法はクラスメソッドです。 UIView - クラスに直接電話する必要があります。 self.viewではなく、UIViewのインスタンスです。上のコード行を見てください。メッセージはUIViewに送信されています。上のコードの正確な行を使用してください。コピー&ペースト私は、ここにビューオブジェクトを挿入するためのプレースホルダとしてUIViewを使用していません!使用するコードです。

+0

thx jrturton、[UIView animateWithDuration:1.0アニメーション:^ {[button setFrame:newFrame];}];それでもエラーが表示される "インスタンスメソッドanimateWithDuration:animations:not found" –

+0

あなたは正確なコードですか? UIViewを使用した場合、インスタンスメソッドについての情報は表示されないためです。 – jrturton

+0

jrturton、ご協力いただきありがとうございます。私は正確なコードを使用しています。ここにself.viewの私はまた、UIView * view =(UIView *)self.viewを試してみました。[view animateWithDuration:1.0 animations:^ {[button setFrame:CGRectMake(10,10,50,50)];}; –

関連する問題