我是新手!
我想為啟動視圖制作一個Boarding螢屏,就像例子中那樣。
我需要幫助,因為我需要幫助。
我需要一些幫助,我在互聯網上搜索,但我沒有找到任何可以幫助我的東西!我找到了一些視頻,我試著在網上搜索了一下。 我找到了一些視頻,并嘗試操作教程中的代碼,但它沒有作業。 我想用VStack(alignment: .center){Text("")}制作一個全視圖背景。 在互聯網和YouTube上,我只找到了教你使用滑塊的視頻,如WebDevelopment(header)的滑塊。
如果有人能幫助我,我將非常高興! 非常感謝!
uj5u.com熱心網友回復:
這里有另一種方法,像這樣:
struct ContentView。View {
@State private var isFinished: Bool = Bool()
var body。some View {
if isFinished {
Text("Welcome!").font(Font.system(.largeTitle, design: .monospaced)
}
else {
OnboardingView(pages: pages, isFinished: { value in isFinished = value })
.statusBar(hidden: true)
}
}
}
struct OnboardingView: View {
let pages: [OnboardingPage] 。
var isFinished: (Bool) -> Void[/span])
@State private var currentPage: Int = 0
@State private var toggleView: Bool = Bool()
@State private var animation: Animation? = Animation.default
var body: some View {
GeometryReader { proxy in
Image(pages[currentPage].backgroundImage)
.可調整大小()
.忽略安全區域()
.scaledToFill()
VStack {
Spacer()
if toggleView {
middleVStack(index: currentPage).transition(AnyTransition.asymmetric(insertion: AnyTransition.move(edge: Edge.trailing), removal: AnyTransition.move(edge: Edge.leading)))
}
else {
middleVStack(index: currentPage).transition(AnyTransition.asymmetric(insertion: AnyTransition.move(edge: Edge.trailing), removal: AnyTransition.move(edge: Edge.leading)))
}
Spacer()
Button(action: {
if (pages.count >/span> (currentPage 1) { currentPage = 1; animation = .default; toggleView.toggle() }
else { isFinished(true) }.
}, label: {
Text(pages[currentPage].stringOfButton)
.font(Font.body.bold())
.padding()
.frame(maxWidth: .infinity)
.background(pages[currentPage].colorOfButton.cornerRadius(10.0)
.padding()
})
HStack {
ForEach(pages.indices, id:.self) { index in
Circle()
.fill(Color.white.opacity(index == currentPage ? 1.0 : 0.5))
.frame(width: 12, height: 12, alignment: .center)
.onTapGesture { animation = nil ; currentPage = index }
}
}
}
.foregroundColor(.white)
.shadow(radius: 5.0)
.animation(animation, value: currentPage)
}
}
func middleVStack(index: Int) -> some View {
VStack(spacing: 20.0) {
Image(systemName: pages[index].image).font(Font.system(size: 100.0).bold()
Text(pages[index].title)
.font(Font.system(size: 50, weight: .bold, design: .rounded)
Text(pages[index].info)
.font(Font.system(.title3, design: .rounded) .bold())
.padding()
}
}
}
struct OnboardingPage。Identifiable {
let id: UID = UUID()
var backgroundImage: String()
var image: String
var title: String
var info: String
var stringOfButton: String
var colorOfButton: Color
}
let info: String = " Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。在這一點上,我們可以看到,在我們的作業中,有很多人都在努力作業。在這里,我想說的是,我們要做的是,在這個世界上,我們要做的是,在這個世界上,我們要做的是,在這個世界上,我們要做的是,在這個世界上,我們要做的是,在這個世界上,我們要做的是,在這個世界上,我們要做的是。除了偶爾的杯具之外,他們都在為自己的行為負責,他們都在為自己的行為負責。
var pages: [OnboardingPage] = [OnboardingPage(backgroundImage: "background1", image: "megaphone", title: "標題1", info: 資訊, stringOfButton: "Next", colorOfButton: .green)。)
OnboardingPage(backgroundImage: "background2", image: "gauge", title: "標題2", info: 資訊, stringOfButton: "Next", colorOfButton: .orange)。)
OnboardingPage(backgroundImage: "background3", image: "gyroscope", title: "標題3", info: 資訊, stringOfButton: "Get Started", colorOfButton: .blue)]
uj5u.com熱心網友回復:
這是你要做的事情的大致想法。
你可以通過一個ZStack來實作,其中影像是背景。然后,您將希望縮放影像以適應背景,忽略安全區域。
示例:
struct ContentView。View {
var body。some View {
ZStack {
Image("background"/span>)
.可調整大小()
.scaledToFill()
.忽略安全區域()
VStack {
Text("Title") .font(.title)
Text("Content")
}
.foregroundColor(.white)
.shadow(radius: 1)
VStack {
Spacer()
Button {
print("pressed"/span>)
} 標簽。{
Text("Button")
.padding()
.background(Color.yellow)
.clipShape(Capsule())
}
}
}
}
}
結果:
我不擁有此圖片的權利。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/307576.html
標籤:





