首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CATransaction未设置动画

CATransaction未设置动画
EN

Stack Overflow用户
提问于 2009-04-30 05:54:39
回答 2查看 4.8K关注 0票数 2

我在XCode中创建了一个新的基于视图的应用程序。

在ViewController中,我修改的唯一代码如下所示:

代码语言:javascript
复制
- (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];
}

它应该创建一个红色方块,在应用程序加载时立即显示半秒的动画。问题是它没有动画效果。我不知道为什么。我创建了这个简单的项目来隔离所有变量,但它仍然不起作用。

有人可以帮助我或在一些核心动画阅读材料的正确方向。我已经看过所有苹果的东西了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-04-30 13:09:11

如果您在CALayer上设置属性,您的代码将按照预期进行动画处理(默认情况下,它们会进行动画处理)。要使UIViews具有动画效果,必须在块中更改其属性,如下所示:

代码语言:javascript
复制
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0f];

// Change properties here

[UIView commitAnimations];

CATransactions用于对动画进行分组,以便协调它们,或者手动禁用一组对象的动画。

票数 5
EN

Stack Overflow用户

发布于 2009-04-30 06:00:40

有人可以帮助我或在一些核心动画阅读材料的正确方向。我已经看过所有苹果的东西了。

有关视图和层上的核心动画的出色演练,请参阅:Core Animation for Mac OS X and the iPhone: Creating Compelling Dynamic User Interfaces

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/805502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档