Joe*_*moe 5 iphone animation core-animation catransform3d
我似乎无法使用简单的3D转换来处理按钮,文档似乎没有帮助.我从一个基于视图的应用程序模板开始.我添加了QuartzCore框架并将其导入ViewController标头.在界面构建器中,我拖出两个Round Rect Buttons并将它们分别连接到button1和button2,并将它们连接到buttonPressed:方法.
注释掉动画的快速运行将验证只有单击的按钮会更改其标签.
回到动画后,我在"sender.transform = t;"上获得了'setTransform:'参数1的错误不兼容类型 line(现在这是固定的行改为[sender.layer setTransform:t];)
如何让它旋转360度.我认为问题是开始和结束状态是相同的,所以它不知道旋转到任何地方.
这是.h,(由于本文中的格式化原因,我省略了导入)
@interface animation2ViewController : UIViewController {
IBOutlet UIButton *button1;
IBOutlet UIButton *button2;
}
-(IBAction) buttonPressed:(UIButton *)sender;
@end
Run Code Online (Sandbox Code Playgroud)
和.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) {
}];
}
Run Code Online (Sandbox Code Playgroud)
M_PI 是 180\xc2\xb0 的旋转,因此这意味着您将 360\xc2\xb0 旋转了 90 次。
\n尝试t = CATransform3DRotate(t, M_PI, 0.0, 1.0, 0.0);
\n并尝试设置器错误[sender.layer setTransform:t];
\n因为你可以只变换图层
最后你需要在最后提交动画,否则它不会动画
\n[UIView commitAnimations];
| 归档时间: |
|
| 查看次数: |
2939 次 |
| 最近记录: |