2012-11-16 2 views
4

하나의 라인이 이전 라인 바로 위에 올 때 UIBezierPath에서 클리핑 된 LineJoin을 얻게됩니다. 두 번째 줄을 한 픽셀 씩 조정하면 LineJoin이 예상대로 작동합니다.경로의 라인이 180 도일 때 예기치 않은 LineJoinStyle 동작이 발생했습니다.

다음
UIBezierPath *path = [UIBezierPath bezierPath]; 
[path setLineWidth:10.0f]; 
[path setLineCapStyle:kCGLineCapRound]; 
[path setLineJoinStyle:kCGLineJoinRound]; 
[path moveToPoint:CGPointMake(100, 100)]; 
[path addLineToPoint:CGPointMake(200, 100)]; 
[path addLineToPoint:CGPointMake(150, 100)]; 
[path moveToPoint:CGPointMake(100, 120)]; 
[path addLineToPoint:CGPointMake(200, 120)]; 
[path addLineToPoint:CGPointMake(150, 121)]; 
[[UIColor redColor] setStroke]; 
[path stroke]; 

가 표시되는 내용은 다음과 같습니다 :

enter image description here

이 버그가 여기 코드는? 그렇지 않은 경우, 최상위 경로 LineJoin을 반올림하는 방법이 있습니까? (포인트를 쓰지 않고)

이것은 'touch-input'에서 UIBezierPath를 만들었을 때 나타 났으며 때로는 주위를 낙서하는 동안 이런 일이 일어났습니다.

+0

와우. 심한 버그 같아. –

+1

이것은 버그처럼 보입니다. https://bugreport.apple.com에서 Apple에보고하십시오. –

+0

Apple 및 공개 레이더에 제출 : http://openradar.appspot.com/12723863 – deep108

답변

3

이것은 iOS 7에서 수정되었습니다. 오픈 레이더도 업데이트되었습니다.

관련 문제