SwiftUI에서 withAnimation을 사용하여 간편하게 애니메이션 효과를 줄 수 있다.
하지만 간혹가다가 애니메이션 효과가 적용되지 않는 버그?를 발견했다.
예를들어, 어떠한 뷰가 나타날 때에는 애니메이션 효과가 잘 적용 되었다가 뷰가 사라질 때에는 애니메이션 효과가 적용 되지 않을 때가 있다.
아래와 같이 말이다.
위 예시를 보면 고양이 사진을 더블클릭을 하게 되면 하트가 사진 중앙에 나타나게 되는데, 나타날 때에는 애니메이션 효과가 잘 적용 되었지만 사라질 때에는 서서히 사라지는 것이 아니라 한번에 휙 하고 사라지는걸 볼수 있다.
원인은 ZIndex로 하트 모양의 Image가 Transition 될 때 ZIndex가 고양이 사진 보다 아래로 내려가면서 한번에 사라지는 것 처럼 보인다고 한다.
하트 모양의 Image가 transition될 때 ZIndex가 0이 되어 ZIndex를 명시적으로 1로 설정을 해주거나 고양이 이미지의 ZIndex를 0보다 낮은 -1로 설정 해주면 애니메이션이 적용되자 않던 버그가 해결된다.
아래는 zindex를 명시적으로 설정하고 난 후 정상적으로 작동하는 예시이다.