2012-01-24 9 views
1

私は現在そうよう、PNGへのビューの可視部分をレンダリングしています:ビューとそのサブビューの共通部分をどのようにレンダリングするのですか?

UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, [UIScreen mainScreen].scale); 
[self.layer renderInContext:UIGraphicsGetCurrentContext()]; 
image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

ビューはサブビューと呼ばれるImageViewの(およびいくつかの他)を持っています。私はimageView(他のサブビューを含む)と交差するビューの可視部分をレンダリングしたいと思います。私はUIRectClipを使用して見ているが、私は非常に奇妙な結果を得る。ビューとそのサブビューの共通部分をどのようにレンダリングするのですか?

答えて

0

それはそうと同じように、私はCGContextTranslateCTMを使用する必要が判明:

CGRect combinedFrame = CGRectIntersection(imageView.frame, self.bounds); 
UIGraphicsBeginImageContextWithOptions(combinedFrame.size, NO, [UIScreen mainScreen].scale); 
CGContextRef ctx = UIGraphicsGetCurrentContext();  
CGContextTranslateCTM(ctx, -combinedFrame.origin.x, -combinedFrame.origin.y); 
[self.layer renderInContext:UIGraphicsGetCurrentContext()]; 
image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
0

layer.maskプロパティを使用してみましたか?あなたは言って別のビューを使用して1つのビューをマスクすることができます。

viewA.layer.mask = viewB.layer. 

(あなたが#IMPORTと、これらのプロパティを使用するようにQuartzCoreフレームワークを追加する必要があります)。

関連する問題