問題
SwiftUIのPhotosPickerを利用した場合謎に画像が逆さまになってしまっている
@State private var transactionImageItem: PhotosPickerItem?
@State private var transactionImage: Image?
var body: some View {
NavigationStack {
VStack {
HStack {
VStack {
if transactionImage == nil {
PhotosPicker("Select avatar", selection: $transactionImageItem, matching: .images)
} else {
transactionImage?
.resizable()
.scaledToFit()
.frame(width: 100, height: 100)
}
}
.padding(.horizontal, 10)
}
}
.onChange(of: transactionImageItem) {
Task {
if let image = try? await transactionImageItem?.loadTransferable(type: Image.self) {
transactionImage = image
} else {
print("Failed")
}
}
}
}
}
こうするとこんな感じになってしまう
解決
一旦Data
型で取得して、Data -> UIImage -> Imageにしたら直りました。なあぜなあぜ
let data = try? await transactionImageItem?.loadTransferable(type: Data.self),
let image = UIImage(data: data) {
transactionImage = Image(uiImage: image)