본문 바로가기

프로그래밍/iOS

[iOS] CABasicAnimation scale

http://life-shelter.tistory.com/159 



위 링크에서 circle뷰를 만들었으니 풍선처럼 부푸는 애니메이션 코드 작성


CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; 

[animation setFromValue:[NSNumber numberWithFloat:.001f]]; // 시작 크기

[animation setToValue:[NSNumber numberWithFloat:1.f]]; // 완료 크기

[animation setDuration:0.3f]; // 애니메이션까지 걸리는 초

animation.fillMode = kCAFillModeForwards; // 애니메이션이 겹칠때 앞으로 오게(5개 연속으로 할거라서 적용함)

animation.removedOnCompletion = NO; // 애니메이션이 끝나고 유지

[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]]; // 순차적으로 동작하게 Linear로 설정 

[animation setTimingFunction:[CAMediaTimingFunction functionWithControlPoints:.34 :.01 :.69 :1.37]]; // 어느점을 기준으로 동작할지 설정 

[[view1 layer] addAnimation:animation forKey:@"scale"]; // 1번째 뷰 적용

animation.duration = 0.6f; // 2번째 뷰 시간 설정

[[view2 layer] addAnimation:animation forKey:@"scale"]; // 2번째 뷰 적용

animation.duration = 0.9f; // 3번째 뷰 시간 설정

[[view3 layer] addAnimation:animation forKey:@"scale"]; // 3번째 뷰 적용

animation.duration = 1.2f; // 4번째 뷰 시간 설정

[[view4 layer] addAnimation:animation forKey:@"scale"]; // 4번째 뷰 적용

animation.duration = 1.5f; // 5번째 뷰 시간 설정

animation.delegate = self; // delegate 설정

[[view5 layer] addAnimation:animation forKey:@"scale"]; // 5번쨰 뷰 적용


위같이 한 후 애니메이션이 끝나고 아래 함수에서 원하는 작업을 하면 된다.

- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag

{

    NSLog(@"애니메이션 끝");

}

'프로그래밍 > iOS' 카테고리의 다른 글

[iOS] 다국어가 적용되지 않는 언어를 선택할 시  (0) 2016.07.01
[iOS] UIImage 회전 함수  (0) 2016.06.20
[iOS] 원 모양 뷰 만들기  (0) 2016.06.14
[iOS] token animation  (0) 2016.06.14
[iOS] rotate 이미지뷰 만들기  (0) 2016.04.08