gpt4 book ai didi

foreach - 如何使用 SwiftUI 在 ScrollView 中选择一个项目?

转载 作者:行者123 更新时间:2023-12-04 17:26:08 26 4
gpt4 key购买 nike

我想要完成的是有一个项目循环,我可以点击一个项目,一旦点击它就会以编程方式变大
这是我的代码和到目前为止的结果:

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 不会重新加载自己
enter image description here

最佳答案

只需删除 @StateemojiView

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 测试

关于foreach - 如何使用 SwiftUI 在 ScrollView 中选择一个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63297201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com