코어 그래픽을 통해 2 개의 선형 그래디언트를 그린 다음 세 번째 흑백 선형 그래디언트로 마스킹하여 4 점 그라디언트를 만들 계획입니다.iOS에서 4 점 기울기
코어 그래픽 또는 기타를 사용하여 4 점 그라디언트를 그릴 수있는 효율적인 방법이 있습니까? 당신이 CGBlendMode를 사용할 때
코어 그래픽을 통해 2 개의 선형 그래디언트를 그린 다음 세 번째 흑백 선형 그래디언트로 마스킹하여 4 점 그라디언트를 만들 계획입니다.iOS에서 4 점 기울기
코어 그래픽 또는 기타를 사용하여 4 점 그라디언트를 그릴 수있는 효율적인 방법이 있습니까? 당신이 CGBlendMode를 사용할 때
당신은 마스크 그라데이션을 절약 할 수 있습니다. 정확한 색상을 제어하는 것이 더 어렵습니다. 그러나 이것이 당신에게 중요하지 않다면, 코드의 측면에서 보면 좀 더 효율적일 수 있고, 아마도 성능면에서도 좀 더 효율적일 수 있습니다.
방사형에게 투명 그라데이션 적용 :
을 여기
는 어떤 임의의 색상과 CGBlendModeExclusion (CGBlendModeDifference 당신에게 비슷한 효과를 준다)- (void) drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetBlendMode(ctx, kCGBlendModeExclusion);
CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB();
CGFloat col1[8] = {
1.0, 0.0, 0.0, 1.0,
0.0, 0.0, 1.0, 1.0
};
CGGradientRef grad1 = CGGradientCreateWithColorComponents (space, col1, NULL, 2);
CGContextDrawLinearGradient(ctx, grad1, CGPointMake(0, 0), CGPointMake(0, 320), 0);
CGFloat col2[8] = {
1.0, 0.5, 0.0, 1.0,
0.0, 1.0, 0.0, 1.0
};
CGGradientRef grad2 = CGGradientCreateWithColorComponents (space, col2, NULL, 2);
CGContextDrawLinearGradient(ctx, grad2, CGPointMake(0, 0), CGPointMake(320, 0), 0);
CGGradientRelease(grad1);
CGGradientRelease(grad2);
CGColorSpaceRelease(space);
}
그리기 네 개의 원 예입니다
,결과 :
참고 :
영리하다. 고마워. – Mrwolfy
이것은 좋은 해결책 인 것 같습니다. – Mrwolfy
굉장히 좋았어, 잘 했어! –