gpt4 book ai didi

ios - 如何在 iOS Swift 中将角半径设置为 UIImage 而不是 UIImageView

转载 作者:搜寻专家 更新时间:2023-11-01 06:05:37 27 4
gpt4 key购买 nike

谁能帮帮我……!我只想为图像设置角半径,而且图像必须适合 AspectFit 比例。

如果我提供 scaleToFill 模式,我可以使用下面的代码并且它工作正常。但图像已被拉伸(stretch)。

self.productImg.layer.cornerRadius = 7
self.productImg.clipsToBounds = true

但是当将比例赋予 AspectFit 时,它显示如下图所示。

显示的绿色是 ImageView ,其中图像设置为 aspectFit。

实际图像

Actual image

给予aspectFit模式时的Image

Image when giving the aspectFit mode

我需要实际给出的图像,并且它必须具有圆角半径。所以请任何人给我解决这个问题的解决方案。

提前致谢...!

最佳答案

这里是 UIImage 的一个扩展,用于为其设置圆角半径,而不是处理 UIImageView。

 extension UIImage {
// image with rounded corners
public func withRoundedCorners(radius: CGFloat? = nil) -> UIImage? {
let maxRadius = min(size.width, size.height) / 2
let cornerRadius: CGFloat
if let radius = radius, radius > 0 && radius <= maxRadius {
cornerRadius = radius
} else {
cornerRadius = maxRadius
}
UIGraphicsBeginImageContextWithOptions(size, false, scale)
let rect = CGRect(origin: .zero, size: size)
UIBezierPath(roundedRect: rect, cornerRadius: cornerRadius).addClip()
draw(in: rect)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
}

用法:

yourUIImage.withRoundedCorners(radius: 10)

关于ios - 如何在 iOS Swift 中将角半径设置为 UIImage 而不是 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38655374/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com