개요
SwiftUI에서 TabView에 대해서 알아보고 사용법을 익혀보겠다.
TabView
struct TabView<SelectionValue, Content> where SelectionValue : Hashable, Content : View
탭뷰는 상호작용하는 UI 요소들을 사용한 여러개의 자식뷰들을 서로 스위칭 할 수 있는 뷰이다.
간단하게 탭창으로 여러개의 뷰를 전환할 수 있는 뷰이다. UIKit에서는 UITabBarController인듯
UI를 탭으로 구성하기 위해서 tabItem modifier를 TabView에 적용한다.
badge
로 각각의 탭에 알림을 띄울 수 있다.
1 |
|
위의 예시는 공식문서 예시로 뷰를 하나 만든거에 modifier를 붙였다. 그래서 뷰 따로 안만들고 뷰 뒤에 바로 붙여보겠다.
탭 아이템은 Label을 사용하거나 이미지, 텍스트를 원하는 방식으로 구성하면된다.
작동방식으로 탭 아이템이 각각의 뷰와 1대1로 연결된 것처럼 보이지만 사실은 아니다.
특정 뷰에 modifier로 연결된 방식이 아니라 탭뷰에 순서로 연결된다.
그래서 뷰를 3개만들었는데 탭 아이템을 2개만 만들면 마지막것이 안나온다.
Tag
내가 어떤 탭에 있는지 확인할 때 사용한다.
탭뷰의 제네릭 SelectionValue를 관리하는 생성자를 사용해 탭뷰를 만든 뒤 각 탭별로 .tag(SelectionValue)
를 넣어주면 된다.
1 |
|
탭 색깔 변경
지금은 accentColor로 한다는데 없어진단다.
tint 아니면 asset의 accent color를 사용하란다.
위에 탭 뷰 만들기
탭 뷰를 위에 만들고 싶었다.
아무리 찾아봐도 안나온다.
그래서 ViewRouter 만들고 버튼으로 탭뷰 역할을 하도록 했다.
이게 맞나..??
1 |
|