2011-03-09 37 views
5

我用圓圈形狀的UIBezierpath:填充的UIBezierPath與一個UIImage

UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:100]; 

但後來我要填充用的UIImage(僅示出其是圓內的圖像的一部分)的圓

問候 克里斯蒂安

編輯:

感謝丹尼爾和戴維優秀的答案:d救了我很多麻煩; d

的解決方案:

CGContextRef ctx = UIGraphicsGetCurrentContext(); 
CGContextAddPath(ctx, path.CGPath); 
CGContextClip(ctx); 

和:

path.addClip; 

兩個完美的作品,但我最終使用的最後一個方法(由Dave),因爲它需要更少的代碼。

+0

你可能想要一個蒙面圖像,應該沒有貝塞爾路徑? – Eimantas 2011-03-09 17:39:18

回答

9

更新:正如Dave DeLong指出的那樣,不需要使用Core Graphics功能。這應該是訣竅:

[path addClip]; 
[image drawAtPoint:CGPointZero]; 
+2

+1,儘管你不需要下載CoreGraphics來做到這一點。你可以使用' - [UIImage draw ....]'和' - [UIBezierPath addClip]'來做到這一點。 – 2011-03-09 18:15:10

+0

Good call Dave - 我沒有注意到'addClip'方法。更新了顯示UIKit實現的答案。 – 2011-03-09 21:14:56