[swift] CoreAnimation 레이어 애니메이션 완료 처리

Core Animation은 iOS 및 macOS 애플리케이션에서 애니메이션을 구현하는 데 사용되는 강력한 도구입니다. 레이어 애니메이션을 사용하면 뷰의 특정 속성을 부드럽게 변경할 수 있으며, 애니메이션이 완료될 때 알림을 받을 수 있습니다.

이 포스트에서는 Core Animation 레이어 애니메이션의 완료 처리에 대해 살펴보겠습니다.

Core Animation 애니메이션 완료 처리하기

레이어 애니메이션이 완료될 때 수행해야 하는 작업이 있다면 CATransaction 클래스를 사용하여 이를 처리할 수 있습니다. CATransaction 클래스를 사용하면 특정 레이어 애니메이션이 완료될 때 실행되는 완료 블록을 지정할 수 있습니다.

다음은 Swift에서 Core Animation 레이어 애니메이션의 완료 처리를 추가하는 예제입니다.

CATransaction.begin()
CATransaction.setCompletionBlock {
    // 애니메이션이 완료될 때 실행될 작업 수행
}
// 레이어에 애니메이션 추가
CATransaction.commit()

CATransaction.begin()을 호출하여 트랜잭션을 시작하고, CATransaction.setCompletionBlock을 사용하여 애니메이션이 완료될 때 실행될 작업을 지정합니다. 그리고 나서 CATransaction.commit()을 호출하여 트랜잭션을 완료합니다.

예제

다음은 개별 레이어의 위치를 변경하는 간단한 Core Animation 애니메이션 예제입니다.

// 레이어 생성
let layer = CALayer()
layer.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
layer.backgroundColor = UIColor.red.cgColor

// 애니메이션 추가
CATransaction.begin()
CATransaction.setAnimationDuration(1.0)
CATransaction.setCompletionBlock {
    layer.backgroundColor = UIColor.blue.cgColor
}
layer.position = CGPoint(x: 200, y: 200) // 위치 변경
CATransaction.commit()

위 예제에서는 빨간색으로 초기화된 레이어를 생성하고, 해당 레이어의 위치를 변경하는 애니메이션을 추가합니다. 애니메이션이 완료되면 레이어의 배경색을 파란색으로 변경하는 작업을 수행합니다.

레이어 애니메이션의 완료 처리를 통해 애니메이션 완료 후 필요한 작업을 쉽게 추가할 수 있습니다.

Core Animation의 레이어 애니메이션 완료 처리에 대해 알아보았습니다. 애니메이션이 완료되면 수행할 작업을 처리하는 데 CATransaction 클래스를 사용하여 완료 블록을 지정할 수 있습니다.

참고문헌: