ImapgePicker.swiftで取得したフォトライブラリーの画像を、ContentView.swiftでカラーパネルを前面に描画して開閉する簡単なクイズアプリを作ろうとしていますが、
パネルの開閉には成功したのですが、画像を選び直すときにパネルの開閉が更新されません。すなわち消されたパネルがそのままになっていて画像が出てしまいます。色々試したのですが何せ初心者で独学なので行き詰まってしまいました。アドバイスよろしくお願いします。```swift
コード
``// ContentView.swift
// 取得した写真にパネルをかぶせ開閉させる
import SwiftUI
struct ContentView: View {
@State var image = UIImage() @State var isSelected1:Bool = false @State var isShowPhotoLibrary = false var body: some View { ZStack{ Image(uiImage: self.image) .resizable() .frame(width: 296, height: 218) .scaledToFit() VStack { Button("①"){self.isSelected1 = !self.isSelected1} .frame(width: 296, height: 218,alignment: .center) .font(.system(size: 50)) .foregroundColor(Color(isSelected1 ?.clear: .blue)) .background(Color(isSelected1 ?.clear: .red)) .position(x: 220, y: 420) Button(action: { self.isShowPhotoLibrary = true }, label: { Image(systemName: "photo") .font(.system(size: 50)) }) } }
.sheet(isPresented: $isShowPhotoLibrary, content: {
ImagePicker(sourceType: .photoLibrary, selectedImage: self.$image)
})
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
あなたの回答
tips
プレビュー