我在SwiftUI中实现了以下代码:
import SwiftUI
struct onAppearmodifier: View {
@State var mytext: String = "Start"
let symbols: [String] = ["globe", "heart.fill","house.fill"]
var body: some View {
NavigationView {
ScrollView {
ForEach(0..<200) { _ in
Rectangle()
.frame(width: 200, height: 200, alignment: .center)
.padding()
.onAppear {
//call the function that I want to build
}
}
}
.onAppear {
mytext = "Fine"
}
}
}
我想使用stride构建一个函数,在画布上显示上面声明的带有句点3的每个矩形的SFSymbol,我想在onAppear()修饰符中为特定数量的矩形调用这个函数。我的想法是实现一个特定类型的函数,如果我是正确的,就使用下面的代码块
for index in stride(from: 0, to: symbols.count, by: 3) {
let symbolGroup = Group {
Image(systemName: symbols[index])
Image(systemName: symbols[index + 1])
Image(systemName: symbols[index + 2])
但我不知道如何编码后,各种尝试。我卡住了。任何帮助或其他建议将不胜感激。
2条答案
按热度按时间deyfvvtc1#
我不知道为什么你会认为
onAppear
在这里有用。如果你想要一个图像,使用Image
。“period”可以通过将
ForEach
的当前索引的余数(不要用_
扔掉它!)除以3(或者你有多少图像)来实现。我也不知道你为什么要用
Rectangle
,也许你想把图像用成overlay
的矩形?qyuhtwio2#
这听起来像是你想在滚动视图中有行,每行有3个符号。你应该构建一个单独的子视图,它需要一个符号数组来显示在每行上。然后你还需要一个生成这些数组的函数。
你需要将绘制视图和准备数据分开。很难确定你想要实现什么,但是在下面的代码中,三个符号的集合被设置在一个显示数组中,这是在Appear上运行的。然后有一个视图,它接受数组并在forEach的每个循环中显示符号。
这个例子中的数组处理非常粗糙,需要小心操作以避免索引超出范围。希望它能为您提供结构化的方法。