Dav*_*zzo 5 image aspect-ratio uiimage swift swiftui
当使用初始化程序 Image(uiImage: UIImage) 从 UIImage 创建 SwiftUI 图像时,我很难正确显示 SwiftUI 图像。
我正在使用的代码是
private var rightViewImage: Image
public var body: some View {
....
rightViewImage
.resizable()
.renderingMode(.template)
.scaledToFit()
.foregroundColor(.blue)
.frame(width: 20, height: 20)
}
Run Code Online (Sandbox Code Playgroud)
并在方法中设置变量
if let image = UIImage(systemName: "mic") {
rightViewImage = Image(uiImage: image)
}
Run Code Online (Sandbox Code Playgroud)
我得到了图像的拉伸版本

而不是正确缩放的,这是这个

看起来 .scaledToFit() 不起作用,它像 .fill 一样渲染它。
这是一个错误吗?
UIImage(systemName:)提供了与 完全不同的图像尺寸和分辨率Image(systemName:)。
对于这种情况,您应该这样做:
Image(systemName: "mic")
.resizable()
.renderingMode(.template)
.scaledToFit()
.foregroundColor(.blue)
.frame(width: 20, height: 20)
Run Code Online (Sandbox Code Playgroud)
这是 Image() 渲染的内容:
这是 UIImage() 渲染的内容:
| 归档时间: |
|
| 查看次数: |
815 次 |
| 最近记录: |