[SwiftUI] 첫 화면 튜토리얼 구현
자작으로 만들 때를 생각한다
완성 예
처음 시작 시 탐지
Enum&Structs.swift
struct CurrentUserDefaults{
// 初回起動時判定
static let isFirstVisit = "is_first_visit"
}
구조체로 참조할 수 있도록 해 두면 편리한 🎯
정책으로서는, UserDefaults에 기술해 두면 식별할 수 있다는 것 같다
ContentView.swift
.onAppear(){
firstVisitSetup()
}
.fullScreenCover(isPresented: $isShowTutorialView, content: {
// Tutorial Viewに飛ばす
TutorialView()
})
func firstVisitSetyp() {
let visit = UserDefaults.standard.bool(forkey: CurrentUserDefaults.isFirstVisit)
if visit {
print("Two times")
//MARK: 以下はプレビュー用
UserDefaults.standard.set(false, forKey: CurrentUserDefautls.isFirstVisit)
}else{
print("First Access")
self.isShowTutorialView.toggle()
UserDefaults.standard.set(true, forKey: CurrentUserDefaults.isFirstVisit)
}
}
슬라이드 구현
아래 TabView만 발췌
TutorialView.swift
// Slide Tutorial View
TabView(selection: $selection,
content: {
Image("tutorial_image_1")
.resizable()
.scaledToFit()
.tag(1)
Image("tutorial_image_1")
.resizable()
.scaledToFit()
.tag(2)
Image("tutorial_image_1")
.resizable()
.scaledToFit()
.tag(3)
Button(action: {
print("BUTTON CLICKED")
presentaionMode.wrappedValue.dismiss()
}, label: {
Text("Let's Start".uppercased())
.font(.title3)
.fontWeight(.bold)
.foregroundColor(.white)
.padding(.all, 30)
.background(Color.MyTheme.blueColor)
.cornerRadius(10)
.shadow(radius: 20)
})
.tag(4)
})
.tabViewStyle(PageTabViewStyle())
.frame(height: 500)
요약
의외로 순조롭게 구현할 수 있었습니다!
끝까지 읽어 주셔서 감사합니다!
Twitter ( htps : // 라고 해서 r. 코 m / 료스케 _ 카미 무 r )
Github ( htps : // 기주 b. 코 m / 료스케 카미 무라 )
참고
참고 : Swift5에서 첫 번째 시작 판정 (htps : // m / 1220 / ms / 60, c8061, 39c9704, 9, Ae)
Reference
이 문제에 관하여([SwiftUI] 첫 화면 튜토리얼 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/coffmark/items/f039f2905c25b890ef20텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)