gpt4 book ai didi

ios - 组合 TextView 中带有 onTapGesture 的多个 Bool

转载 作者:行者123 更新时间:2023-11-28 07:19:03 24 4
gpt4 key购买 nike

我们可以使用 map 和 reduce 函数创建组合 TextView (不是逐行)。

struct ContentView: View {
@State private var boolArr = [false, false, true, true, false]

var body: some View {
(0...boolArr.count).map {
Text("\($0)")
}.reduce(Text(""), +)
}
}

如果我们点击文本而不是所有文本,我想在特定文本下划线。例如,如果我点击文本“1”,它会加下划线。如果我再次点击,它会删除下划线。并非所有文本都带有下划线和删除所有下划线,只有我点击的特定文本。以下方法告诉我不能 convert value of type 'Int' to expected argument type 'WritableKeyPath<_, _>'

(1...boolArr.count).map {
Text(" \($0) ").underline(self.$boolArr[$0])
}.reduce(Text(""), +)
.onTapGesture(count: 1) {
self.$boolArr[$0] ? false: true
}

为什么 $0 不起作用?以及,哪种方式有效?

最佳答案

这是我为您提供的解决方案。希望对你有帮助

struct ContentView: View {
@State private var boolArr = [false, false, true, true, false]

var body: some View {
HStack() {
ForEach([1,2,3,4,5], id: \.self) { number in
Text("\(number)")
.underline(self.boolArr[number - 1])
.onTapGesture(count: 1) {
self.boolArr[number - 1].toggle()
}
}
}
}
}

关于ios - 组合 TextView 中带有 onTapGesture 的多个 Bool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58688602/

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