如何使用SwiftUI在ScrollView中选择项目? [英] How to select an item in ScrollView with SwiftUI?
本文介绍了如何使用SwiftUI在ScrollView中选择项目?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图实现的是有一个项目循环,我可以在其中点击一个项目,一旦点击,它就会以编程方式变得更大
以下是我的代码和到目前为止的结果:
struct ContentView: View {
@State var emojisArray = ["📚", "🎹", "🎯", "💻"]
@State var selectedIndex = 0
var body: some View {
VStack {
ScrollView(.horizontal) {
HStack {
ForEach(0..<emojisArray.count) { item in
emojiView(emoji: self.emojisArray[item],
isSelected: item == self.selectedIndex ? true : false)
.onTapGesture {
print (item)
self.selectedIndex = item
}
}
}
}
.onAppear()
.frame(height:160)
VStack{
Text("selcted item:")
Text("(self.emojisArray[self.selectedIndex])")
}
}
}
}
emojiView在哪里:
struct emojiView: View {
var emoji : String
@State var isSelected : Bool
var body: some View {
Text(emoji)
.font(isSelected ? .system(size: 120) : .system(size: 45))
}
}
我想问题在于ScrollView不会自动重新加载
推荐答案
只需删除emojiView
中的@State
struct emojiView: View {
var emoji : String
var isSelected : Bool // << here !!
var body: some View {
Text(emoji)
.font(isSelected ? .system(size: 120) : .system(size: 45))
}
}
使用Xcode 12/IOS 14测试
这篇关于如何使用SwiftUI在ScrollView中选择项目?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文