当我的旋转变换度高于90时,我想将背面图像添加到CALayer。
就像Flipboard翻转动画一样。
这是我目前的代码:
CALayer *layer = self.view.layer;
int frames = 130;
layer.anchorPoint = CGPointMake(0, 0.5);
CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -2000.0;
transform = CATransform3DRotate(transform, -frames * M_PI / 180.0, 0.0, 1.0, 0.0);
self.view.layer.transform = transform;
CAKeyframeAnimation *pivot = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
NSMutableArray *values = [[NSMutableArray alloc] initWithCapacity:45];
NSMutableArray *times = [[NSMutableArray alloc] initWithCapacity:45];
for (int i = 0; i < frames; i++) {
CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -2000.0;
transform = CATransform3DRotate(transform, -M_PI / 180.0 * i, 0.0, 1.0, 0.0);
[values addObject:[NSValue valueWithCATransform3D:transform]];
[times addObject:[NSNumber numberWithFloat:(float)i / (frames - 1)]];
}
pivot.values = values;
pivot.keyTimes = times;
[values release];
[times release];
pivot.duration = 0.5f;
pivot.calculationMode = kCAAnimationLinear;
[layer addAnimation: pivot forKey: @"pivot"];
有人能告诉我如何像翻转效果一样添加背面图像。
答案 0 :(得分:4)
据我所知,最简单的方法是添加两个代表页面正面和背面的子图层。将子图层的doubleSided
属性设置为NO。将背面图层变换设置为您正在设置的相同翻转变换。然后,当页面的正面朝向观察者时,前侧层是可见的,而后侧层是“隐藏的”,反之亦然。
请参阅GeekGameBoard源代码(Card.m)以获取该技术的示例。