2014-02-19 2 views
-3

제약 조건에 따라 획 및 채우기 색상이 동적으로 변경되는 과정 표시기 (진행 표시기 아님)를 그려야합니다. 요구되는 모양을 그리는 것은 정말로 어렵습니다. 어떤 지침이 좋을 것입니다.사용자 정의 원이 UIView의 라인과 결합되었습니다.

어떻게 그럴 수 있습니까? UI는 진행보기와 비슷하지만 줄 사이에 원이 있어야합니다. 감사합니다

+1

이것은 매우 모호한 질문입니다. 내가 성취하고자하는 바가 무엇인지, 현재 시도한 바가 무엇인지 모르겠다. – Eric

+1

찾고있는 것을 보여주기 위해 사진 세트를 제공 할 수 있습니까? – bbarnhart

+0

세부 사항을 표현할 수없는 것에 대해 사과드립니다. 기본 아이디어는 특정 사용자 환경 설정에 따라 라인으로 연결된 원을 동적으로 그려 보는 것입니다 ... O-O-O처럼 – user3329394

답변

0

당신은 CAShapeLayers와 QuartzCore를 사용하여 이런 종류의 것을 그릴 수 있어야합니다.

CoreGraphics.framework를 라이브러리에 추가하십시오. 클래스 여기

#import <QuartzCore/QuartzCore.h> 

의 상단에

(이 당신을 위해 무엇을 찾고있는 가정)이 0-0-0과 같이 무언가의 예입니다. 당신이 할 수있는

// this will be a parent layer container 
CALayer *progressIndicator = [[CALayer alloc] init]; 

// the first bubble 
CAShapeLayer *bubble1 = [[CAShapeLayer alloc] init]; 
bubble1.fillColor = [UIColor lightGrayColor]; 
bubble1.strokeColor = [UIColor darkGrayColor]; 
bubble1.strokeWidth = 1; 
bubble1.path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0,0,50,50)].CGPath; 
[progressIndicator addSublayer:bubble1]; 

// the first connecting line 
CAShapeLayer *line1 = [[CAShapeLayer alloc] init]; 
line1.strokeColor = [UIColor darkGrayColor]; 
line1.strokeWidth = 2; 

UIBezierPath *linePath = [UIBezierPath bezierPath]; 
[linePath moveToPoint:CGPointMake(50, 25)]; 
[linePath addLineToPoint:CGPointMake(75, 25)]; 

line1.path = linePath.CGPath; 
[progressIndicator addSublayer:line1]; 

// ... And so on for the next 2 bubbles and 1 line. ...// 

// Add it to your view. 
[self.view.layer addSublayer:progressIndicator]; 

은 진행률 표시 줄 천천히 시간이 지남에 따라 작성의 영향을주고 (불투명도 등)뿐만 아니라 이러한 개체에 대부분의 속성을 애니메이션.

+0

내 친구는 생명을 구하는 사람입니다! 당신이 묘사 한 것과 정확히 똑같은 방식으로 사진을 업로드하려했지만 커뮤니티에 새로운 사람들로서 사진을 추가 할 때 평판이 필요합니다. 이것을 시도 할 것이다. – user3329394

관련 문제