我有一个具有圆角半径和阴影的自定义视图,并且我试图在其中添加图像。图像应位于圆形区域内。但是,我在视图中看到了一个黑色区域,图像应该是这样的(或者图像是一个正方形,没有圆角,在我最后一次尝试时)。我如何添加此图片?Swift - 将图像添加到圆形视图
错误的结果我得到:
我的代码:
import Foundation
import UIKit
@IBDesignable
class RoundedSquareView: UIView {
var shadowLayer: CAShapeLayer!
@IBInspectable var image: UIImage! = UIImage()
override func layoutSubviews() {
super.layoutSubviews()
if shadowLayer == nil {
shadowLayer = CAShapeLayer()
shadowLayer.path = UIBezierPath(roundedRect: bounds, cornerRadius: 14).cgPath
shadowLayer.fillColor = UIColor.white.cgColor
shadowLayer.shadowColor = UIColor.darkGray.cgColor
shadowLayer.shadowPath = shadowLayer.path
shadowLayer.shadowOffset = CGSize(width: 0, height: 10.0)
shadowLayer.shadowOpacity = 0.3
shadowLayer.shadowRadius = 10
layer.insertSublayer(shadowLayer, at: 0)
}
let imgLayer = CAShapeLayer()
let myImage = image.cgImage
imgLayer.frame = bounds
imgLayer.masksToBounds = true
imgLayer.contents = myImage
imgLayer.path = UIBezierPath(roundedRect: bounds, cornerRadius: 14).cgPath
imgLayer.cornerRadius = 14
layer.addSublayer(imgLayer)
}
}
编辑:
预期的结果:
我已经在应用我想把这个图像放在这个自定义的视图上,视图应该是圆的,有阴影,并且有一个图像在里面 –
Post edit。请看看我想要的结果, m试图实现。 –
更新完整的扩展 – Frankie