【发布时间】:2017-02-16 18:00:37
【问题描述】:
我有一个带有圆角半径和阴影的自定义视图,我正在尝试在其中添加一个图像。图像应位于圆形区域内。但是我在视图中得到了一个黑色区域,图像应该在哪里,(或者在我最后一次尝试时,图像是一个正方形,没有圆角)。如何添加这张图片?
我得到的错误结果:
我的代码:
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)
}
}
编辑:
预期结果:
【问题讨论】: