2011-04-07 76 views

回答

0

這是目前不可能的。如果您認爲應該支持,我會建議提交雷達(http://bugreport.apple.com)

參見:Can a CGImage be added to the contents property of a CAShapeLayer?

+0

嗨casademora,謝謝你的回答。那麼扭曲形狀的最佳方式是什麼,例如貝塞爾路徑?我必須移動到OpenGL ES和紋理嗎? – LocoMike 2011-04-29 08:33:23

+0

當我發現該選項不受支持時,我停止了我的調查。我的猜測是,使用OpenGL會給你更多的選擇......你可以創建一個形狀,並將圖像映射爲紋理,但這與我對openGL的瞭解一樣多::( – casademora 2011-05-03 19:55:02

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]; 
+0

在正確的軌道上,擴展從此並將'image'的掩碼設置爲'blueCircleLayer'。 – 2017-09-01 14:00:42