카테고리 없음

SwiftUI: TabView Style 사용하기

ragdoll-cat 2025. 2. 13. 21:49

SwiftUI의 TabView tabViewStyle(_:)을 사용하여 다양한 스타일을 적용할 수 있습니다. 공식 문서에서 제공하는 TabViewStyle의 종류와 특징을 알아봅시다!

 

automatic

시스템이 자동으로 적절한 스타일을 적용합니다.

  • 기본적으로 tabBarOnly 스타일을 사용하지만, 특정 상황에서는 page 스타일이 적용될 수 있습니다.
  • 플랫폼과 컨텍스트(예: iOS, iPadOS, macOS)에 따라 달라질 수 있습니다.

플랫폼에 따라 다른 스타일을 사용하지만, iOS 에서는 기본적으로 Tab bars를, iPadOS와 macOS에서는 Tab views를 사용합니다.

 

tabBarOnly

하단 탭바를 표시하는 기본적인 TabView 스타일입니다.

  • iOS에서 기본값.
  • 하단에 UITabBar처럼 탭바가 고정됩니다.
  • 사용자가 직접 스와이프로 전환할 수 없으며, 탭바를 눌러 전환해야 합니다.

page

페이지 스와이프 방식의 TabView 입니다.

 

  • tabBar에서 사용할 수 없었던 스와이프로 전환이 가능합니다.
  • 기본적으로 페이지 인디케이터(페이지 점)가 표시되지 않음.
  • page(indexDisplayMode:)를 사용하면 인디케이터 표시 모드를 설정할 수 있음.

 

 

page(indexDisplayMode:)

page 스타일에 페이지 인디케이터 표시 모드를 추가한 스타일입니다.

 

  • .never: 페이지 인디케이터 숨김.
  • .always: 페이지 인디케이터 항상 표시.
  • .automatic: 시스템이 적절히 결정.

 

verticalPage

세로 스와이프 방식의 TabView입니다.

  • watchOS 전용 스타일입니다.

sideBarAdaptable

사이드바와 탭바를 상황에 맞게 조절하는 스타일입니다.

  • iPad 및 macOS에서 사용하면 UISplitViewController처럼 동작하여 사이드바 형태로 표시됨.
  • iPhone에서는 일반적인 tabBarOnly 스타일로 적용됨.
  • iOS 17 이상에서 지원됨.

💡 정리

스타일 특징 최소 지원 버전
automatic 시스템이 적절한 스타일 자동 선택 iOS 14+
page 좌우 스와이프 가능, 페이지 인디케이터 없음 iOS 14+
page(indexDisplayMode:) page 스타일 + 페이지 인디케이터 설정 가능 iOS 14+
verticalPage 위아래 스와이프 가능, 페이지 인디케이터 없음 iOS 17+
sideBarAdaptable iPad/macOS에서는 사이드바, iPhone에서는 기본 탭바 iOS 17+
tabBarOnly 일반적인 하단 탭바 스타일 iOS 14+