保持核心动画过渡持久?

时间:2012-01-08 20:15:56

标签: iphone cocoa-touch core-animation

我有一个自定义UILabel我希望在文本更改时添加转换。

我创建了一个转换:

CATransition *a = [CATransition animation];
a.duration = 1.0;
a.type = kCATransitionPush;
self.transition = a;

我将转换设置为班级中的属性。这是我调用更新文本的方法:

- (void)postMessage:(NSString *)message {    
    [self.messageLabel.layer addAnimation:self.transition forKey:@"statusAnimation"];
    self.messageLabel.text = message;
}

一切正常。但是,我不想继续将动画添加到我的标签中。每次更新时都会减慢速度。

我的问题是 - 我怎样才能保持这种过渡的持久性,以便每次调用此方法时都会显示一个动画,而不必每次都手动添加它?

1 个答案:

答案 0 :(得分:2)

你问的是不可能的。 Core Animation是一个有状态库,它会复制您呈现的动画对象,然后在完成时释放它。如果遇到性能问题,则应使用动画块方法。 This overview of Core Animation with blocks应该可以帮助您入门。