やりたいこと
SwiftUIのリストでリスト載せるがタップされた時セルのレイアウトを変更したいと考えているのですが、タップ反応がうまく取れずレイアウトを切り替えることができません。
コード
swift
1struct FroutsModel { 2 let name: String 3 let imageName: String 4 var isSelected: Bool 5} 6 7struct ContentView: View { 8 @State var fruits: [FroutsModel] = [ 9 FroutsModel(name: "りんご", imageName: "ringo", isSelected: true), 10 FroutsModel(name: "オレンジ", imageName: "orange", isSelected: false), 11 FroutsModel(name: "バナナ", imageName: "banana", isSelected: false) 12 ] 13 14 var body: some View { 15 List { 16 ForEach(0 ..< fruits.count) { index in 17 if fruits[index].isSelected { 18 HStack{ 19 Image(fruits[index].imageName) 20 .resizable() 21 .frame(width: 50, height: 50) 22 Text(fruits[index].name) 23 } 24 .onTapGesture { 25 // タップした時に呼ばれない 26 fruits[index].isSelected = false 27 } 28 29 } else { 30 Text(fruits[index].name) 31 .onTapGesture { 32 // タップした時の呼ばれない 33 fruits[index].isSelected = true 34 } 35 } 36 37 } 38 } 39 } 40}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。