我似乎无法在按钮上使用简单的三维变换,文档也没有提供帮助。我从View-based应用程序模板开始。我添加了QuartzCore框架并在ViewController头文件中导入它。在界面构建器中,我拖出两个Round Rect Buttons,并将它们分别连接到button1和button2,并将它们都连接到buttonPressed: 方法。
取消注释动画并快速运行可验证仅被点击的按钮更改其标签。
将动画添加回来后,我遇到了错误: "sender.transform = t;" 行中参数1不兼容 'setTransform:' (现在已更正为 [sender.layer setTransform:t];)。
如何使它旋转360度呢?我认为问题在于起始状态和结束状态相同,因此它不知道要旋转到哪里。
这是.h文件(出于格式原因,我省略了导入)。
取消注释动画并快速运行可验证仅被点击的按钮更改其标签。
将动画添加回来后,我遇到了错误: "sender.transform = t;" 行中参数1不兼容 'setTransform:' (现在已更正为 [sender.layer setTransform:t];)。
如何使它旋转360度呢?我认为问题在于起始状态和结束状态相同,因此它不知道要旋转到哪里。
这是.h文件(出于格式原因,我省略了导入)。
@interface animation2ViewController : UIViewController {
IBOutlet UIButton *button1;
IBOutlet UIButton *button2;
}
-(IBAction) buttonPressed:(UIButton *)sender;
@end
还有 .m 文件
#import "animation2ViewController.h"
@implementation animation2ViewController
-(IBAction)buttonPressed:(UIButton *)sender {
[sender setTitle:@"new title" forState:UIControlStateNormal];
[UIView animateWithDuration:1.0
delay:0.0
options:UIViewAnimationCurveEaseInOut
animations:^{
CATransform3D t = CATransform3DIdentity;
t.m34 = -1 / 1000;
t = CATransform3DRotate(t, 360 * M_PI / 180, 0.0, 1.0, 0.0); //ultimately want 360 degrees but starting here first
[sender.layer setTransform:t];
}
completion:^(BOOL finished) {
}];
}