【发布时间】:2011-02-28 05:29:15
【问题描述】:
当用户点击按钮时,我正在尝试为 iPad 应用程序中的部分 UI 设置动画。我的操作方法中有此代码。它的工作原理是 UI 改变了我的预期,但它并没有为这些变化设置动画。它只是立即改变。我一定错过了什么:
- (IBAction)someAction:(id)sender {
UIViewController *aViewController = <# Get an existing UIViewController #>;
UIView *viewToAnimate = aViewController.view;
CALayer *layerToAnimate = viewToAnimate.layer;
[CATransaction begin];
[CATransaction setAnimationDuration:1.0f];
CATransform3D rotateTransform = CATransform3DMakeRotation(0.3, 0, 0, 1);
CATransform3D scaleTransform = CATransform3DMakeScale(0.10, 0.10, 0.10);
CATransform3D positionTransform = CATransform3DMakeTranslation(24, 423, 0);
CATransform3D combinedTransform = CATransform3DConcat(rotateTransform, scaleTransform);
combinedTransform = CATransform3DConcat(combinedTransform, positionTransform);
layerToAnimate.transform = combinedTransform;
[CATransaction commit];
// rest of method...
}
我已尝试简化动画以仅更改不透明度(例如),但它仍然不会动画。不透明度会立即改变。这让我相信有些东西没有正确设置。
任何线索都会有所帮助!
【问题讨论】:
标签: iphone objective-c cocoa ipad core-animation