【SwiftUI】TabView의 기본 사용법
이해 - 공부 지원 앱 -
TabView란?
여러 하위 뷰를 전환할 수 있는 뷰입니다.
공식 참조
실제 동작
코드
코드
의 동영상 소스 코드가 됩니다.
struct ContentView: View {
var body: some View {
TabView{
FirstPage() //1枚目の子ビュー
.tabItem {
Image(systemName: "1.circle.fill") //タブバーの①
}
SecondPage() //2枚目の子ビュー
.tabItem {
Image(systemName: "2.circle.fill") //タブバーの②
}
}
}
}
아래는 각각 하위 뷰의 내용입니다.
struct FirstPage: View {
var body: some View {
Text("1枚目")
.font(.title)
.foregroundColor(.green)
}
}
struct SecondPage: View {
var body: some View {
Text("2枚目")
.font(.title)
.foregroundColor(.red)
}
}
이런 식으로 TabView { } 안에 자식 보기를 작성하면 이를 전환하여 하나씩 볼 수 있습니다.
위의 예에서는 뷰를 2개로 했습니다만, 3개 이상에도 대응하고 있어, iPhone이면 5개까지라면 그대로 탭 바에 표시됩니다.
(iPad라면 8개까지 그대로 탭바에 표시할 수 있습니다.)
6개 이상이 되면 탭 바의 오른쪽에 "More"라고 쓰여진 버튼이 자동으로 만들어지고 5번째 이후의 탭 바가 모두 내포됩니다.
tabItem 수정자
탭 막대에 표시할 뷰를 지정할 수 있습니다. tabItem이 없어도 탭바는 만들어집니다만, 아무것도 쓰여지지 않은 탭이 되어 어디를 누르면 좋은지 알기 어려워지기 때문에, 기본은 tabItem을 붙여야 할까라고 생각합니다.
tabItem의 {} 안에는 Image와 Text를 지정하여 조합할 수 있으며, VStack을 사용하지 않아도 자동으로 세로 정렬됩니다.
탭바의 색은 디폴트가 청색으로 되어 있습니다만, TabView의 acentColor를 지정하는 것으로, 색의 변경이 가능합니다.
struct ContentView: View {
var body: some View {
TabView{
Text("1")
.tabItem {
Image(systemName: "message.fill")
Text("メッセージ")
}
Text("2")
.tabItem {
Image(systemName: "magnifyingglass")
Text("さがす")
}
Text("3")
.tabItem {
Image(systemName: "face.smiling.fill")
Text("スタンプ")
}
}
.accentColor(.green) //ここで色の指定
}
}
요약
TabView는 Twitter나 LINE 등 많은 앱에서 볼 수 있는 화면 전환을 가능하게 하는 뷰입니다. 꼭 사용하고 멋진 앱을 만드세요.
참고문헌
SwiftUI 철저 입문 가네다 고메이 (저)
(【주의】Xcode12 비대응의 것입니다)
Reference
이 문제에 관하여(【SwiftUI】TabView의 기본 사용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/masayoshi0327/items/8c2fd0248a8429710c3d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
SwiftUI 철저 입문 가네다 고메이 (저)
(【주의】Xcode12 비대응의 것입니다)
Reference
이 문제에 관하여(【SwiftUI】TabView의 기본 사용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masayoshi0327/items/8c2fd0248a8429710c3d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)