2016-04-19 16 views
1

画像を表示するパスを描きたい。iOS - パスを描画して画像を表示する

私はこのようなグラデーションでこれを行うために管理:

 CGColorSpaceRef baseSpace = CGColorSpaceCreateDeviceRGB(); 
     CGGradientRef gradient = CGGradientCreateWithColorComponents(baseSpace, colors, NULL, 2); 
     CGColorSpaceRelease(baseSpace), baseSpace = NULL; 

     CGContextSetLineWidth(context, self.lineWidth); 
     CGContextSetLineJoin(context, kCGLineJoinRound); 
     CGContextSetLineCap(context, kCGLineCapRound); 

     CGContextAddPath(context, path); 
     CGContextReplacePathWithStrokedPath(context); 
     CGContextClip(context); 

     CGRect rect = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height); 
     CGPoint startPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMinY(rect)); 
     CGPoint endPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMaxY(rect)); 

     CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0); 
     CGGradientRelease(gradient), gradient = NULL; 

私はこのようなイメージを明らかにパスを描画するために同じ原理を適用しようとしました:

 CGContextSetLineWidth(context, self.lineWidth); 
     CGContextSetLineJoin(context, kCGLineJoinRound); 
     CGContextSetLineCap(context, kCGLineCapRound); 

     CGContextAddPath(context, path); 
     CGContextReplacePathWithStrokedPath(context); 
     CGContextClip(context); 

     CGRect rect = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height); 

     UIImage *image = [UIImage imageNamed:@"placeholder.png"]; <<-- I get EXC_BAD_ACCESS HERE 
     CGImageRef imageRef = image.CGImage; 
     CGContextDrawImage(context, rect, imageRef); 
     CGImageRelease(imageRef), imageRef = NULL; 

私が得た上記のコードから、 EXC_BAD_ACCESSオンラインUIImage *image = [UIImage imageNamed:@"placeholder.png"];

私は間違っていますか?

+0

 UIImage *image = [UIImage imageNamed:@"placeholder.png"]; <<-- I get EXC_BAD_ACCESS HERE CGImageRef imageRef = image.CGImage; CGContextDrawImage(context, rect, imageRef); CGImageRelease(imageRef), imageRef = NULL; 

から変わったのか? – farzadshbfn

+0

私は以前このアプリで使っていました。問題はなかった。 @farzadshbfn – imstillalive

答えて

0

OK。私は私の質問に対する解決策を見つけました。

私はあなたの資産で `placeholder.png`を追加しました

 UIImage *image = [UIImage imageNamed:@"placeholder.png"]; 
     [image drawInRect:rect]; 
関連する問題