我正在尝试画一条像素虚线,但它总是画2px线。当前解决方案:

let shapelayer = CAShapeLayer()
let path = UIBezierPath()
path.moveToPoint(CGPoint(x: x, y: y))
path.addLineToPoint(CGPoint(x: x, y: y))

shapelayer.strokeColor = UIColor.whiteColor().CGColor
shapelayer.lineWidth = 1.0 / UIScreen.mainScreen().scale
shapelayer.lineJoin = kCALineJoinMiter
shapelayer.lineDashPattern = [1, 3]
shapelayer.path = path.CGPath
layer.addSublayer(shapelier)

最佳答案

那是因为形状层不知道您有一个双分辨率屏幕,所以它绘制了1点线,并且在屏幕上被加倍为2像素。您需要将形状图层的contentsScale设置为屏幕的显示比例。

仅对于您自己创建的图层(如此图层)会出现此问题。

关于ios - CAShapeLayer 1px虚线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36939880/

10-10 04:09