Foreach SwiftUI中的自定义滚动视图指示器
是否可以创建一个自定义的水平指示器,其中有空的和填充的圆圈,以显示有多少图像和当前位置 下面的尝试使用了一个Foreach SwiftUI中的自定义滚动视图指示器,foreach,swiftui,scrollview,indicator,Foreach,Swiftui,Scrollview,Indicator,是否可以创建一个自定义的水平指示器,其中有空的和填充的圆圈,以显示有多少图像和当前位置 下面的尝试使用了一个lazyHStack和OnAppear,但是从控制台输出判断,它不能正常工作,因为前后滚动并不能一致地调用OnAppear import SwiftUI struct ContentView: View { let horizontalScrollItems = ["wind", "hare.fill", "tortoise.fi
lazyHStack
和OnAppear
,但是从控制台输出判断,它不能正常工作,因为前后滚动并不能一致地调用OnAppear
import SwiftUI
struct ContentView: View {
let horizontalScrollItems = ["wind", "hare.fill", "tortoise.fill", "rosette" ]
var body: some View {
GeometryReader { geometry in
ScrollView(.horizontal, showsIndicators: false) {
LazyHStack {
ForEach(horizontalScrollItems, id: \.self) { symbol in
Image(systemName: symbol)
.font(.system(size: 200))
.frame(width: geometry.size.width)
.onAppear(){print("\(symbol)")}
}
}
}
}
}
}
这是所需的指标。我只是不知道如何在用户来回滚动时正确填充和清空每个圆圈。谢谢你的帮助
使用
TabView()
和PageTabViewStyle()
注意:这将在SwiftUI 2.0上运行
代码如下:
struct ContentView: View {
let horizontalScrollItems = ["wind", "hare.fill", "tortoise.fill", "rosette" ]
var body: some View {
GeometryReader { geometry in
TabView(){
ForEach(horizontalScrollItems, id: \.self) { symbol in
Image(systemName: symbol)
.font(.system(size: 200))
.frame(width: geometry.size.width)
}
}
.tabViewStyle(PageTabViewStyle())
.indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))
}
}
}
结果:
请参阅。