我有一个名为photoLayer的CALayer,它有一个名为imageLayer的子层,其内容是CGImageRef。用户可以在图像和图像中选择裁剪矩形。还可以使用平移/缩放手势进行手指缩放(此选项是使用UIScrollView的另一个UI的一部分)。要使用选定的裁剪矩形和缩放值在imageLayer中显示图像,我将缩放变换应用于imageLayer以选择缩放值。我还调整了imageLayer的position属性,以匹配使用pan / zoom选择的图像裁剪矩形的左上角。这样我就可以正确显示带有裁剪/缩放图像的imageLayer。
但是现在我还需要在中心周围放大photoLayer(即imageLayer的父图层),当我将transform.scale动画应用到photoLayer时,imageLayer不会沿着中心缩放。我期待imageLayer不受超级图层比例动画的影响但事实并非如此。我究竟做错了什么 ?以下是我如何缩放photoLayer:
CABasicAnimation *scale = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
[scale setFromValue:[NSNumber numberWithFloat:0.0f]];
[scale setToValue:[NSNumber numberWithFloat:1.0f]];
scale.beginTime = startTime;
scale.duration = 1.f;
[scale setRemovedOnCompletion:NO];
[scale setFillMode:kCAFillModeForwards];
[photoLayer addAnimation:scale forKey:@"scaleUp"];
我真的需要imageLayer跟随photoLayer在中心周围的比例动画。