0

我试图以任意方式扭曲图像,例如贝塞尔形状。我使用 CAShapeLayer 创建形状,但似乎将其内容设置为 Image 不起作用。我怎样才能使图像按照该形状变形?甚至可能吗?

谢谢!

4

2 回答 2

2

这样做是不可能的,但我通过将 CALayer 放在 CAShapeLayer 上成功地做到了这一点。这是我的代码:

CALayer *image =[CALayer layer];
image.frame = CGRectMake(0, 0, 75, 75);
image.contents = (id) [UIImage imageNamed:@"number-1"].CGImage;    
 [self.layer addSublayer:image];



UIBezierPath *circle = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 75, 75)];
blueCircleLayer = [CAShapeLayer layer];
blueCircleLayer.path = circle.CGPath;
blueCircleLayer.strokeColor = [UIColor blueColor].CGColor;
blueCircleLayer.fillColor = [UIColor clearColor].CGColor;
blueCircleLayer.shadowColor =[UIColor blackColor].CGColor;
blueCircleLayer.shadowOffset = CGSizeMake(0.0f, 5.0f);
blueCircleLayer.shadowOpacity = 0.7f;
blueCircleLayer.lineWidth = 7.0;

[self.layer addSublayer:blueCircleLayer];
于 2013-07-04T07:35:28.580 回答
0

目前这是不可能的。如果您认为应该支持,我建议您提交雷达(http://bugreport.apple.com) 。

另请参阅:可以将 CGImage 添加到 CAShapeLayer 的内容属性中吗?

于 2011-04-28T20:30:03.290 回答