我正在尝试自定义UIImage视图,以包括一个红色/绿色圆圈来显示在线状态。我当前的代码如下:
import UIKit
class AvatarImageView: UIImageView {
enum AvatarImageViewOnlineStatus {
case online
case offline
case hidden
}
var onlineStatus: AvatarImageViewOnlineStatus = .hidden
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
private func setup() {
clipsToBounds = true
layer.cornerRadius = frame.size.width / 2.0
let circleShapeLayer: CAShapeLayer = CAShapeLayer()
circleShapeLayer.path = UIBezierPath(ovalIn: CGRect(x: 0, y: 0, width: 30, height: 30)).cgPath
circleShapeLayer.fillColor = UIColor.red.cgColor
layer.addSublayer(circleShapeLayer)
}
}
但是该图层也会被裁剪:
默认情况下,图层上的 maskToBounds
设置为false
,文档状态为:
一个布尔值,指示是否将子层裁剪到该层的边界。可动画的。
但是它仍然被裁剪。我在这里做什么错了?