实例方法beginAnimations:context:not found

时间:2012-04-17 06:56:41

标签: iphone ios4

我正在尝试添加动画以从左到右移动我的按钮。

我添加了以下代码

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

但是当我构建时,我看到警告“实例方法beginAnimations:context:not found”

我添加了QuartzCore框架并包含

#import <QuartzCore/CoreAnimation.h>

有人可以告诉我缺少什么吗?

谢谢

1 个答案:

答案 0 :(得分:2)

无需导入石英标题。

beginAnimations:context:是一种类方法。你在UIView的一个实例上调用它。这同样适用于setAnimationDurationcommitAnimations。将self.view替换为UIView,或者更好地使用基于块的动画。

您的代码已更正:

[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作为占位符“在这里插入一个视图对象!”,这是你必须使用的代码。