我在 XCode 中创建了一个新的基于视图的应用程序。
在 ViewController 中,我修改的唯一代码如下所示:
- (void)viewDidLoad {
[super viewDidLoad];
UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
newView.backgroundColor = [UIColor redColor];
[self.view addSubview:newView];
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:0.5f] forKey:kCATransactionAnimationDuration];
newView.layer.frame = CGRectMake(20,20,220,220);
[CATransaction commit];
}
它应该创建一个红色方块,在应用程序加载后立即动画半秒。问题是它没有动画。我不明白为什么。我创建了这个简单的项目来隔离所有变量,但它仍然不起作用。
任何人都可以帮助我或为我指出一些核心动画阅读材料的正确方向。我已经浏览了所有苹果的东西。
如果您在 CALayer 上设置属性,您的代码将按预期显示动画(默认情况下它们会显示动画)。要使 UIView 具有动画效果,您必须在块中更改其属性,如下所示:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0f];
// Change properties here
[UIView commitAnimations];
CATransactions 用于对动画进行分组,以便它们协调,或者手动禁用一组对象的动画。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)