일부 사용자 정의보기를 그리기 위해 -drawRect:
을 재정의했습니다. 일반적으로 그림자가있는 채워진 둥근 rect 베 지어 패스를 그립니다. 그러나 나는 성가신 문제에 봉착했습니다. 그림자 색상을 설정하면 채우기 색상도 같은 색상으로 변경됩니다!CGContextSetShadowWithColor가 현재 채우기 색상을 변경하는 이유는 무엇입니까?
코어 그래픽의 버그입니까? 아니면 여기에 누락 된 것이 있습니까? 다음은 그림자가있는 경로를 그리려는 코드의 예제입니다. translucentBlack
및 highlight
은 두 개의 서로 다른 객체이지만, 그려지는 점은 강조 표시 색상의 그림자와 강조 표시 색상으로 채워진 둥근 사각형입니다.
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];
아이디어가 있으십니까? 감사!
감사합니다. 누군가이 질문을 upvoted. 나를 덜 독특하게 어리 석 게 만든다. – CharlieMezak