화면이 멈추는 현상 (TabView)
TabView란?
공식문서: 링크
Apple 정의
A view that switches between multiple child views using interactive user interface elements.
여러개의 자식뷰를 가진 뷰 스위쳐라고 적혀있다. 안드로이드의 ViewPager와 비슷하다고 보면 될 것 같다. 애플에서 공식으로 제공하는 뷰중에 하나지만 StackOverflow 등을 보면 버그가 많아서 많이 쓰이지는 않는 것같다.
이번에 겪은 증상을 기록용으로 남겨본다.
버그증상
iOS 14.2, 14.3등 특정 버전에서 화면이 멈추면서 아예 동작을 하지 않았다.
SwiftUI를 쓰면서 느낀것인데 SwiftUI는 OS 버전을 많이 타는 것 같다. iOS 14.1이나 iOS 15버전에서는 정상동작을 하는 것을보면 희한하다.
해결방법
- TabView를 제거한다.
- UIPageViewController를 사용하거나 SwiftUIPager 라이브러리를 사용한다.
UIKit에서 제공하는 UIPageViewController를 사용하거나 SwiftUIPager라이브러리를 사용하니 버전별로 다르게 동작하던 버그가 사라졌다.
결론
- iOS 14 일부 버전에서 TabView 사용시 화면이 아예 멈추는 현상 발생 (TabView 한 개만 View에서 단독사용시 발생 안함)
- 아직까지는 TabView를 사용하지 말고 UIKit에서 제공하는 UIPageViewController를 사용하거나 SwiftUIPager라이브러리를 사용하자
Disqus
