0

ボタンを左から右に移動するアニメーションを追加しようとしています。

次のコードを追加しました

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

しかし、ビルドすると、「インスタンスメソッドbeginAnimations:context:notfound」という警告が表示されます。

QuartzCoreフレームワークを追加して含めました

#import <QuartzCore/CoreAnimation.h>

誰かが私が欠けているものを教えてもらえますか?

ありがとうございました

4

1 に答える 1

2

クォーツヘッダーをインポートする必要はありません。

beginAnimations:context:クラスメソッドです。UIViewのインスタンスで呼び出しています。setAnimationDuration同じことがとにも当てはまりますcommitAnimations。代わり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それらを直接--classに呼び出す必要がありますUIViewのインスタンスでself.viewあるではありません。上記のコード行を見てください-メッセージはに送信されています。上記のコードの正確な行を使用してください。必要に応じてコピーして貼り付けます。「ここにビューオブジェクトを挿入してください!」のプレースホルダーとしてUIViewを使用していません。これは、使用する必要のあるコードです。 UIView

于 2012-04-17T07:04:35.060 に答える