2015-01-24 4 views
1

UIView.animateWithDuration을 사용하여 두 개의 다른 애니메이션이있는 두 개의 UIView가 있습니다. 첫 번째 애니메이션이 바로 시작되고, 두 번째 애니메이션은 0.5 초 후에 시작됩니다. 내가 그리 아래의 예처럼 사이에 선을 애니메이션 할 방법iOS : 두 애니메이션보기 사이에 선 그리기

는 :

animation

내 첫 번째 시도는 CGPath로 선을 그어야하고 CABasicAnimation을 사용하여 애니메이션을했다. 두 번째 애니메이션 (또는 테스트의 모양)이 두 번째 애니메이션의 시작이 지연된 경우가 아니라 동시에 애니메이션이 재생되는 경우 작동합니다.

그런 다음 UIView 프레임 위치의 값을 연속적으로 파악하려고합니다. 그게 내가 각 애니메이션 프레임에 내 라인을 다시 그릴 수있게하지만, 그 중 하나를 할 수있는 방법을 찾지 못했습니다.

이렇게 ... 어떻게 합니까 나는 이것을 달성합니까?

+0

멋진 애니메이션. 코드 시도가 더 유용했을 것입니다. – vikingosegundo

+0

첫 번째 테스트에서는 CABasicAnimation 만 사용합니다. 그 문제는 선을 개별적으로 구성하는 두 점에 애니메이션을 적용해야한다는 것입니다. 일단 CAShapeLayer를 사용하면 작동하지 않는 전체 모양에만 애니메이션을 적용 할 수 있습니다. 두 번째 접근법 (계속적인 위치)에서, 나는 그 일을하는 것을 찾지 못했습니다. –

+0

코드를 설명하지 말고 게시하십시오! – vikingosegundo

답변

3

CADisplayLink 아마도 당신이 찾고있는 것입니다.

는 클래스에 update 방법을 추가하고 거기에 애니메이션을 수행

- (void)update { 
    // animate view 1 
    CGRect frame = view1.frame; 
    frame.origin.y += 1; 
    view1.frame = frame; 
    // animate view 2 
    // draw the line/animate another view 
} 

당신이 애니메이션을 시작하려면, 수행 애니메이션이 완료 제거합니다 displayLink부터입니다

displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(update)]; 
[displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode]; 

되면 실행 루프.

관련 문제