我有一个 CALayer,作为这个 CALayer 的子层,我添加了一个 imageLayer,其中包含分辨率为 276x183 的图像。
我在主视图中添加了一个 UIPanGestureRecognizer 并计算 CALayer 的坐标如下:
- (void)panned:(UIPanGestureRecognizer *)sender{
subLayer.frame=CGRectMake([sender locationInView:self.view].x-138, [sender locationInView:self.view].y-92, 276, 183);
}
在 viedDidLoad 我有:
subLayer.backgroundColor=[UIColor whiteColor].CGColor;
subLayer.frame=CGRectMake(22, 33, 276, 183);
imageLayer.contents=(id)[UIImage imageNamed:@"A.jpg"].CGImage;
imageLayer.frame=subLayer.bounds;
imageLayer.masksToBounds=YES;
imageLayer.cornerRadius=15.0;
subLayer.shadowColor=[UIColor blackColor].CGColor;
subLayer.cornerRadius=15.0;
subLayer.shadowOpacity=0.8;
subLayer.shadowOffset=CGSizeMake(0, 3);
[subLayer addSublayer:imageLayer];
[self.view.layer addSublayer:subLayer];
它提供了所需的输出,但在模拟器中有点慢。我还没有在设备中测试过它。所以我的问题是 - 移动包含图像的 CALayer 可以吗?