2012-11-19 4 views
1

일부 사용자 정의보기를 그리기 위해 -drawRect:을 재정의했습니다. 일반적으로 그림자가있는 채워진 둥근 rect 베 지어 패스를 그립니다. 그러나 나는 성가신 문제에 봉착했습니다. 그림자 색상을 설정하면 채우기 색상도 같은 색상으로 변경됩니다!CGContextSetShadowWithColor가 현재 채우기 색상을 변경하는 이유는 무엇입니까?

코어 그래픽의 버그입니까? 아니면 여기에 누락 된 것이 있습니까? 다음은 그림자가있는 경로를 그리려는 코드의 예제입니다. translucentBlackhighlight은 두 개의 서로 다른 객체이지만, 그려지는 점은 강조 표시 색상의 그림자와 강조 표시 색상으로 채워진 둥근 사각형입니다.

UIBezierPath* blackTranslucentRoundedRectPath = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(CGRectGetMinX(frame) + 5, CGRectGetMinY(frame) + 5, CGRectGetWidth(frame) - 10, CGRectGetHeight(frame) - 10) cornerRadius: 8]; 
CGContextSetShadowWithColor(context, highlightOffset, highlightBlurRadius, highlight.CGColor); 
[translucentBlack setFill]; 
[blackTranslucentRoundedRectPath fill]; 

아이디어가 있으십니까? 감사!

+0

감사합니다. 누군가이 질문을 upvoted. 나를 덜 독특하게 어리 석 게 만든다. – CharlieMezak

답변

2

안녕하세요. 반투명 검정색으로 강조 색상을 볼 수 있습니다. translucentBlack을 투명하지 않은 색상 (알파 = 1.0으로 변경)으로 변경하면 문제가되지 않습니다.

+0

@ % # $의 아들. 나는 이것에 완전히 간격을 두었다. 여하튼, 나는 그 그림자가 그 길 밖에없고 그 길 뒤에서 그려지지 않을 것이라고 생각했습니다. – CharlieMezak

관련 문제