swiftUI tabView pagetabviewstyle - 下一步按钮不起作用
swiftUI tabView pagetabviewstyle - button to next is not working
import SwiftUI
GuideImageView
currentPage 表示 1VStack,它位于 guidelists
数组中的文本和图像中
struct GuideImageView: View {
@State var currentPage: Int = 0
var body: some View {
VStack{
TabView(selection: $currentPage){
ForEach(guidelists){i in
VStack{
Text(i.explain)
Image(i.image)
.resizable()
}
}
}.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never)) //page처럼 구현 + ...을 안보이게함
Button("Next") {
if currentPage == 3 {
currentPage = 0
//return
}else{
currentPage += 1
}
}
}
}
}
结构指南列表
struct GuideList: Identifiable, Hashable{//가이드리스트 구조체, 이미지와 설명넣기
let id = UUID() //UUID = 고유식별자
let image: String
let explain: String
}
让指南列表
let guidelists = [
GuideList(image: "image1",explain: "explain1." ),
GuideList(image: "image2",explain: "explain2." ),
GuideList(image: "image3",explain: "explain3." )
]
GuideImageView_Previews
struct ImageView_Previews: PreviewProvider {
static var previews: some View {
GuideImageView()
}
}
我想做一个按钮去下一页
按钮似乎不起作用
这不起作用的原因是模型 ID 和选择变量中的 类型不匹配 。
详情:
TabView(selection: $currentPage){
ForEach(guidelists){i in
这两行告诉编译器每个元素的id都是UUID
类型(因为GuideList
是可识别的,而id
是UUID
类型。那就是本身很好,但是 TabView 有一个 Int
类型的选择变量(currentPage
是一个 Int
)所以它不起作用。因此将两种类型中的一种更改为等于另一种将解决问题。
简单示例:
将您的代码更改为:
struct GuideList: Identifiable, Hashable{//가이드리스트 구조체, 이미지와 설명넣기
let id: Int
let image: String
let explain: String
}
let guidelists = [
GuideList(id: 0, image: "image1",explain: "explain1."),
GuideList(id: 1, image: "image2",explain: "explain2." ),
GuideList(id: 2, image: "image3",explain: "explain3." )
]
import SwiftUI
GuideImageView currentPage 表示 1VStack,它位于 guidelists
数组中的文本和图像中struct GuideImageView: View {
@State var currentPage: Int = 0
var body: some View {
VStack{
TabView(selection: $currentPage){
ForEach(guidelists){i in
VStack{
Text(i.explain)
Image(i.image)
.resizable()
}
}
}.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never)) //page처럼 구현 + ...을 안보이게함
Button("Next") {
if currentPage == 3 {
currentPage = 0
//return
}else{
currentPage += 1
}
}
}
}
}
结构指南列表
struct GuideList: Identifiable, Hashable{//가이드리스트 구조체, 이미지와 설명넣기
let id = UUID() //UUID = 고유식별자
let image: String
let explain: String
}
让指南列表
let guidelists = [
GuideList(image: "image1",explain: "explain1." ),
GuideList(image: "image2",explain: "explain2." ),
GuideList(image: "image3",explain: "explain3." )
]
GuideImageView_Previews
struct ImageView_Previews: PreviewProvider {
static var previews: some View {
GuideImageView()
}
}
我想做一个按钮去下一页 按钮似乎不起作用
这不起作用的原因是模型 ID 和选择变量中的 类型不匹配 。
详情:
TabView(selection: $currentPage){
ForEach(guidelists){i in
这两行告诉编译器每个元素的id都是UUID
类型(因为GuideList
是可识别的,而id
是UUID
类型。那就是本身很好,但是 TabView 有一个 Int
类型的选择变量(currentPage
是一个 Int
)所以它不起作用。因此将两种类型中的一种更改为等于另一种将解决问题。
简单示例:
将您的代码更改为:
struct GuideList: Identifiable, Hashable{//가이드리스트 구조체, 이미지와 설명넣기
let id: Int
let image: String
let explain: String
}
let guidelists = [
GuideList(id: 0, image: "image1",explain: "explain1."),
GuideList(id: 1, image: "image2",explain: "explain2." ),
GuideList(id: 2, image: "image3",explain: "explain3." )
]