2011-10-21 2 views
4

저는 베 지어 곡선을 그리려는 프로젝트를 진행하고 있습니다. 도면의 다른 부분에서 lineWidth을 바꿀 수 있기를 바랍니다.CAShapeLayer의 다양한 lineWidth

CAShapeLayer *pathLayer = [CAShapeLayer layer]; 
pathLayer.frame = self.animationLayer.bounds; 
pathLayer.bounds = pathRect; 
pathLayer.geometryFlipped = YES; 
pathLayer.path = path.CGPath; 
pathLayer.strokeColor = [[UIColor blackColor] CGColor]; 
pathLayer.fillColor = nil; 
pathLayer.lineWidth = 1.0f; 
pathLayer.lineJoin = kCALineJoinBevel; 

가 어떻게 라인의 폭을 다양 것 : 여기

내가 가진 무엇인가? 한 가지 해결책은 여러 개의 UIBezierPath을 여러 개의 CAShapeLayer과 함께 사용하는 것이지만 더 간단하고 세련된 솔루션이되어야합니다 (UIBezierPath 행이 지정된 수준에서 lineWidth을 지정하는 선을 따라).

감사합니다.

답변

5

UIBezierPath에는 속성이 하나만 있으므로 lineWidth 속성이 있으므로 한 경로로 다양한 선 너비를 그릴 수 없습니다. 이 효과를 얻으려면 여러 경로를 사용해야합니다.

+0

그래, 여러 경로를 추가하여이 문제를 "해결"했습니다. 비록 현실적으로 볼 수있는 경로/레이어가 얼마나 많은지 전혀 알 수 없습니다. – donkim

+1

필요에 따라 (애니메이션 ...) 모든 경로에 대해 레이어를 만드는 대신 경로를 정적 이미지로 그릴 수 있습니다 . – omz

관련 문제