[英]UIImage in a Rounded UIView swift
我创建了一个UIView,并在UIView中添加了一个Imageview。 我给了UIView角半径,它可以工作,现在的问题是放置在其中的图像不考虑视图的角半径,因此,它将整个图像显示为矩形,而不是具有左上角和topRight角弯曲到与UIView相同的半径。 我的代码如下所示。
let bgView: UIView = {
let bgView = UIView()
bgView.backgroundColor = .white
return bgView
}()
let propertyImage: DefaultImageView = {
let img = DefaultImageView(frame: .zero)
img.clipsToBounds = true
img.layer.masksToBounds = true
img.image = #imageLiteral(resourceName: "icons8-name-filled-30")
img.contentMode = .scaleToFill
return img
}()
这给出了四舍五入的卡片视图
extension UIView {
func addShadowAndRoundCorners() {
layer.shadowOpacity = 1
layer.shadowOffset = CGSize.zero
layer.shadowColor = UIColor.darkGray.cgColor
layer.cornerRadius = 12
}
}
所以我添加了bgView.addShadowAndRoundCorners
类的圆形样式
如何使imageview与UIView的圆角保持一致
将clipsToBounds设置为yes时,也需要将其添加到容器视图中,以强制子视图不呈现在外部:
bgView.clipsToBounds = true
或者,您可以只对imageView本身进行四舍五入。
如果只希望对UIImageView的topLeft和topRight角进行四舍五入,则可能必须在显示图像之前使用遮罩。
创建一个与图像大小相同的CGContext,在CGContext中创建遮罩,然后将图像绘制到上下文中,将应用遮罩,然后从上下文中获取新图像并将其放入UIImageView的.image中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.