2012-07-30 4 views
2

보기 내에서 동봉 된 경로에 어떻게 CGGradient를 그립니다. 그래디언트를 그리려고했지만 뷰 내부에 채우는 CGPath 내에서만이 아니라 뷰 자체에 그려집니다. 채워진 경로에만 그라디언트를 그리고, 뷰 자체에는 그라데이션을 그리지 않습니다.동봉 된 경로에서 CGGradient 그리기

답변

3
  1. 컨텍스트의 상태를 저장하십시오.
  2. 컨텍스트에서 경로를 클립 영역으로 설정하십시오.
  3. 그래디언트를 그립니다.
  4. 컨텍스트의 상태를 복원하십시오.

예 :

CGContextSaveGState(context); 
CGContextAddPath(context, myPath); 
CGContextClip(context); 
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, kNilOptions); 
CGContextRestoreGState(context); 
+0

감사합니다. 중앙 색상과 상단과 하단에 같은 색상의 그래디언트를 어떻게 그립니다. 같은 배열을 가지고 CFArrayRef colors = (__bridge CFArrayRef) [NSArray arrayWithObjects : (id) lightGradientColor.CGColor, (id) darkGradientColor.CGColor, (id) lightGradientColor.CGColor, nil]; 그러나 밝은 색은 맨 위에 있습니다. – jarryd

+1

새 질문을 게시해야합니다. –