5

내 스크롤 뷰 대리자 메서드 scrollViewDidEndDragging에서 수행하는 간단한 애니메이션이 있습니다. 내 homeLabel 상단에서오고 손가락을 들어 올려 한 후이 애니메이션을 사용animateWithDuration에 바운스 애니메이션을 추가하는 방법은 무엇입니까?

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { 

    NSLog(@"finger was lifted"); 

    [UIView animateWithDuration:1.0 
        animations:^{ 
         self.homeLabel.frame = self.view.frame; 
        }]; 
} 

, 그리고 난 그래서 정상에서 올 때, 라벨에에게 반송 애니메이션을 추가 할 :

은 다음과 같습니다 , 매끄럽게 착륙하는 대신 멋진 바운스가 될 것입니다. 어떻게 할 수 있습니까? thanksss

+0

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/occ/clm/UIView/animateWithDuration:delay:usingSpringWithDamping:initialSpringVelocity:options:animations : 완료 : – Desdenova

답변

0

좋은 해결책 중 하나는 addAnimation:forKey: 메서드를 재정 의하여 사용자 지정 타이밍 기능을 포함하는보기에 대한 사용자 지정 레이어를 만드는 것입니다.

answer은이를 수행하는 방법에 대해 자세히 설명합니다.

또 다른 옵션은 키 프레임 애니메이션을 살펴 보는 것입니다. 이 question and answer은 이러한 접근법을 매우 잘 처리합니다.

15

usingSpringWithDamping 애니메이션 기능을 사용할 수 있습니다.

[UIView animateWithDuration:1.0 delay:0 usingSpringWithDamping:0.2 initialSpringVelocity:5.0 options:UIViewAnimationOptionCurveLinear animations:^{ 
    self.homeLabel.frame = self.view.frame; 
} completion:^(BOOL finished) { 

}]; 

조정 Spring DampingInitial Spring Velocity 당신에게 원하는 효과를 줄 수 있습니다.

+1

이것은 가장 좋은 답변입니다. (투표 됨.)'animateWithDuration : delay : usingSpringWithDamping : initialSpringVelocity : options : animations : completion :'메소드는 OP가 요구하는 것을 위해 맞춤화되어 있습니다. 나는이 호출을 사용하여 시계의 손을 움직이는 github에 대한 데모 프로그램을 작성했으며 매우 현실적인 바운스 (bounce) 모양을 제공합니다. –