programing tip

iPhone OS 4.0의 블록 기반 애니메이션 방법은 무엇입니까?

itbloger 2021. 1. 5. 07:47
반응형

iPhone OS 4.0의 블록 기반 애니메이션 방법은 무엇입니까?


iPhone OS 4.0 (iOS4?) SDK를 사용하여 게임을 구현하려고합니다. 이전 버전의 SDK에서는 [UIView beginAnimations : context :] 및 [UIView commitAnimations]를 사용하여 애니메이션을 만들었습니다. 그러나 4.0의 함수 문서를 보면이 주석이 보입니다.

이 방법은 iPhone OS 4.0 이상에서 사용하지 않는 것이 좋습니다. 대신 블록 기반 애니메이션 방법을 사용해야합니다.

여기에서 찾을 수 있습니다 : http://developer.apple.com/iphone/library/documentation/uikit/reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/clm/UIView/commitAnimations

제 질문은 iPhone OS 4.0에서 블록 기반 애니메이션이란 무엇입니까? 나는 beginAnimations : context : 및 commitAnimations 함수가 애니메이션 블록을 만드는 데 사용되었지만 ..


해당 링크를 따라 조금 위로 스크롤하면 ios4의 새로운 애니메이션 메서드를 볼 수 있습니다.

animateWithDuration:animations:
animateWithDuration:animations:completion:
animateWithDuration:delay:options:animations:completion:

관련 전환 방법도 있습니다. 이들 각각에 대해 animations 인수는 블록 객체입니다 .

애니메이션
보기에 적용 할 변경 사항을 포함하는 블록 개체입니다. 여기에서 뷰 계층 구조에서 뷰의 애니메이션 가능한 속성을 프로그래밍 방식으로 변경합니다. 이 블록에는 매개 변수가없고 반환 값이 없습니다. 이 매개 변수는 NULL이 아니어야합니다.

블록 객체동시 프로그래밍의 일부입니다.


블로그에 예제를 게시했습니다 .

    CGPoint originalCenter = icon.center;
    [UIView animateWithDuration:2.0
            animations:^{ 
                CGPoint center = icon.center;
                center.y += 60;
                icon.center = center;
            } 
            completion:^(BOOL finished){

                [UIView animateWithDuration:2.0
                        animations:^{ 
                            icon.center = originalCenter;
                        } 
                        completion:^(BOOL finished){
                            ;
                        }];

            }];

위의 코드는 2 초 애니메이션으로 UIImageView * (아이콘)에 애니메이션을 적용합니다. 완료되면 다른 애니메이션이 아이콘을 원래 위치로 다시 이동합니다.


여기 아주 간단한 예가 있습니다. 코드는 UIView를 페이드 아웃하고 애니메이션이 완료된 후에 숨 깁니다.

[UIView animateWithDuration:1.0 
                      delay:0.0 
                    options:UIViewAnimationOptionCurveEaseInOut 
                 animations:^ {
                     bgDisplay.alpha = 0.0;
                 } 
                 completion:^(BOOL finished) {
                     bgDisplay.hidden = YES;
                 }];

또는 다른 형식 :

[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^ {
    bgDisplay.alpha = 0.0;
} completion:^(BOOL finished) {
    bgDisplay.hidden = YES;
}];

참조 URL : https://stackoverflow.com/questions/3126833/what-are-block-based-animation-methods-in-iphone-os-4-0

반응형