2015-01-11 4 views
0

채우기에 대한 해결책을 찾지 못했습니다. UIBezierPath 일부 색상 및 일부 너비이지만 경로 행은 투명하게 유지하십시오.UIBezierPath를 채우지 만 경로를 지워야합니다.

[[UIColor clearColor] setStroke] does not work. 

은 내가 무엇을 가지고 :

enter image description here

내가 원하는 것은 : 내가 어떤 변화 때 필요한 이유

enter image description here

이 두 사각형의

공유 라인이 동일한 좌표를 가지고, 그 있어 그들을 그려라.

답변

2

경로의 두꺼운 윤곽선 안의 모든 것을 지우려는 경우 CGContextReplacePathWithStrokedPath을 사용하여 스트로크를 경로로 변환하십시오. 그런 다음 투명한 혼합 모드로 채우므로 두꺼운 경로를 따라 그림을 지울 수 있습니다. 또는 명확한 블렌드 모드를 사용하여 패스를 스트로크하면됩니다.

이 그림에서 두꺼운 노란색 타원은 선이 그어 지거나 노란색으로 채워지지 않습니다. 타원은 투명하고, 노란색은 뒤쪽의보기이며, 빨간색 직사각형을 통해 보입니다. 즉 타원 은 빨간색 사각형을 통해 타원형을 지 웁니다.

CGContextAddEllipseInRect(con, CGRectMake(100,100,200,50)) 
    CGContextSetLineWidth(con, 10) 
    CGContextSetBlendMode(con, kCGBlendModeClear) 
    CGContextReplacePathWithStrokedPath(con) 
    CGContextFillPath(con) 

또는 당신이 이런 식으로 할 수있는 :

CGContextAddEllipseInRect(con, CGRectMake(100,100,200,50)) 
    CGContextSetLineWidth(con, 10) 
    CGContextSetBlendMode(con, kCGBlendModeClear) 
    CGContextStrokePath(con) 
+0

내가에만 쓸 수 있습니다 때 수 [ 경로 채우기], 전체 rect가 채워지면 경로가 포함됩니다. [clearColor setStroke] 및 [패스 스트로크]를 써도 전체 rect가 채워집니다. –

+0

그러나 그것은 당신이해야 할 일처럼 들립니다. "닫힌 경로를 채우지 만 경로를 명확하게 유지하십시오." 당신이하려는 것을 사진으로 그릴 수 있습니까? – matt

+0

이제는 [whiteColor setFill]을 사용했지만 여러 가지 이유로 그 해결책은 좋지 않습니다. –

1

함께 쓰다듬어은 [UIColor clearColor]은 같은 것이 아니다 여기

enter image description here

는 타원을 그린 코드입니다 이미 완료 한 채우기에 지우개를 사용하는 것처럼 투명 잉크로 펜으로 그려 넣기 만하면됩니다.

당신은 pathByStrokingPath와 두 번째 경로를 확인하고 다음 채우기에서이 지역 '마스크'에 EOClip를 사용하거나 그냥 스트로크 뒤에 무엇이든의 backgroundColor와 경로 ...

+0

그것은 좋은 생각입니다. 'pathByStrokingPath'는'CGContextReplacePathWithStrokedPath'와 정확히 동일하므로, 여러분이 이미 준 응답과 똑같은 답을주고 있습니다. 'CGContextSetBlendMode' ~'kCGBlendModeClear'_does_는 스크린 샷과 같이 기존 채우기에 지우개를 사용합니다. 어쨌든 괜찮습니다. 내 책에서는 두 가지 접근법을 모두 보여줍니다 (지우기 vs.클리핑) : http://www.apeth.com/iOSBook/ch15.html#_paths_and_drawing (그리고 다음 섹션, 클리핑시) – matt

+0

죄송합니다. 아이폰에서 해본 결과, 그 댓글 (또는 또 다른 답변)을 볼 수 없었습니다. 나는 그것을 타이핑했다. 최고 + upvote – Jef

+0

아무 걱정도, 당신의 대답은 좋다. 나는 방공호를 명확히하고 있었다. - SO가있는 iPhone 인터페이스가 있습니까? – matt

관련 문제