我正在尝试将一个CAShapeLayer添加到一个自定义的UIViews图层,这个图表进展顺利,除了它自己偏移的事实......
我最好用代码和截图解释..所以在这里:
我想要实现的只是一个简单的“斜线”,如Swift 3中的CAShapeLayer。
在我自定义的UIView中:
var slashLayer: CAShapeLayer?
var slashPath: CGPath?
override func layoutSublayers(of layer: CALayer) {
if layer == self.layer {
if slashLayer == nil {
slashLayer = CAShapeLayer()
slashLayer?.bounds = layer.bounds
slashLayer?.strokeColor = UIColor.black.cgColor
slashLayer?.fillColor = UIColor.black.cgColor
slashLayer?.lineWidth = 3.0
let slashPath = UIBezierPath()
slashPath.move(to: CGPoint(x: layer.frame.minX, y: layer.frame.minY))
slashPath.addLine(to: CGPoint(x: layer.frame.maxX, y: layer.frame.maxY))
slashPath.close()
slashLayer?.path = slashPath.cgPath
layer.addSublayer(slashLayer!)
}
}
}
这就是UIView的子类。
这就是我在Interface Builder(以及我启动它时的应用程序)中的结果。
由于CALayer.layoutManager不再存在,如何让各层保持一致?