선 그래프를 그리는 함수를 만들었습니다. 어떻게 선 그래프를 마스크로 사용하여 이미지 위에 놓을 수 있습니까? 이미지가 다른 높이에서 다른 색상을 가지고, 그래서 내가 뭘 원하는 줄 그래프로 마스킹 후, 라인 그래프는 다른 수준에서 다른 색상을 표시합니다. 나를 도와 주셔서 감사합니다.IOS drawure를 사용하여 이미지에 마스크 만들기
- (void)drawLineGraphWithContext:(CGContextRef)ctx
{
CGContextSetLineWidth(ctx, 2.0);
CGContextSetStrokeColorWithColor(ctx, [[UIColor colorWithRed:1.0 green:0.5 blue:0 alpha:1.0] CGColor]);
int maxGraphHeight = kGraphHeight - kOffsetY;
CGContextBeginPath(ctx);
CGContextMoveToPoint(ctx, kOffsetX, kGraphHeight - maxGraphHeight * data[0]);
for (int i = 1; i < sizeof(data); i++)
{
CGContextAddLineToPoint(ctx, kOffsetX + i * kStepX, kGraphHeight - maxGraphHeight * data[i]);
}
CGContextDrawPath(ctx, kCGPathStroke);
CGContextSetFillColorWithColor(ctx, [[UIColor colorWithRed:1.0 green:0.5 blue:0 alpha:1.0] CGColor]);
for (int i = 0; i < sizeof(data) - 1; i++)
{
float x = kOffsetX + i * kStepX;
float y = kGraphHeight - maxGraphHeight * data[i];
CGRect rect = CGRectMake(x - kCircleRadius, y - kCircleRadius, 2 * kCircleRadius, 2 * kCircleRadius);
CGContextAddEllipseInRect(ctx, rect);
}
CGContextDrawPath(ctx, kCGPathFillStroke);
CGPathRef myPath = CGContextCopyPath(ctx);
CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] init];
CGPathRef myPath = CGContextCopyPath(ctx);
shapeLayer.path = myPath;
_imageView.layer.mask = shapeLayer;
}
당신의''CAShapeLayer'는''alloc init '하지 않습니다. Szlosek이 말했듯이 –
. U는 CAShapeLayer를 초기화해야합니다 – croyneaus4u
코드를 수정했으나 아무 일도 없었습니다 .... – JennyProGram