SwiftUI の ForEach ループで特定のテキストを表示するのに苦労しています。
ForEach で反復処理する配列があります。問題は、カレンダーで特定の日付が選択されているかどうかに関係なく、特定のテキストを表示する必要があることです。例えば:
ForEach(reminders) { reminder in
if(Calendar.current.isDate(reminder.beginDate, equalTo: selectedPassedDate) {
HStack {
Text("The Text for the specific day")
} else {
Text("The text for the unspecific day")
}
}
}
配列に 2 つ以上の要素がある場合、一致しない日のテキストが複数回表示されます (foreach 内にあるため)。これは理にかなっていますが、「指定されていない日」のテキストを多数ではなく 1 つだけ表示する方法を見つけようとしています。
他のテキストを表示するために単純なブール値を追加しようとしましたが、ボタンなどを使用せずに状態を変更することはできません..これを完全にプログラムで行う必要があります。また、else ステートメントをループの外に移動しましたが、ここでもセカンダリ テキストが現在の日付の選択に表示されています。
この問題を解決するにはどうすればよいですか? SwiftUIsビューに準拠しながらプログラムでboolを設定できる場合、これを解決できますが、方法がわかりません。