在 SwiftUI 中,AsyncImage 是用于异步加载网络图片的很好的工具。然而,它在显示竖向图片时可能会旋转这些图片。为了解决这个问题,我们需要对 AsyncImage 进行自定义,并通过自定义 ViewModifier 去旋转图片方向。
具体的解决方法如下:
struct ImageRotationModifier: ViewModifier {
let orientation: UIImage.Orientation
func body(content: Content) -> some View {
content
.rotationEffect(Angle(degrees: orientation == .right ? 90 : -90))
}
}
AsyncImage(url: imageURL) { image in
image
.resizable()
.modifier(ImageRotationModifier(orientation: image.uiImage.imageOrientation))
}
这样就能在显示竖向图片时自动旋转图片方向了。