我正试图从书中获取以下代码。它激活了名为Chicken的UIImageView层:
[CATransaction setValue:kCAMediaTimingFunctionEaseInEaseOut forKey:kCATransactionAnimationTimingFunction];
[CATransaction setValue:[NSNumber numberWithFloat:1.0] forKey:kCATransactionAnimationDuration];
theChicken.position = CGPointMake(225, 144);
问题是此代码没有动画。它只是将鸡肉移动到225,144而根本没有动画(它只是传送到魔法那里)。任何人都可以帮我纠正这些代码吗?
提前致谢,
马丁
答案 0 :(得分:1)
如果将其包装成会发生什么:
[CATransaction begin];
[CATransaction setValue:kCAMediaTimingFunctionEaseInEaseOut forKey:kCATransactionAnimationTimingFunction];
[CATransaction setAnimationDuration:1.0];
theChicken.position = CGPointMake(225, 144);
[CATransaction commit];
如果它仍然不起作用,则可能与图层委托有关。这个图层是子图层吗?我认为委托在根层上设置为nil会产生这种影响。
您可以改为使用UIView动画:
[UIView beginAnimations:@"anim1" context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
theChicken.position = CGPointMake(225, 144);
[UIView commitAnimations];