watchOS 上具有核心图形的莫尔效应?

Moire effect with core graphics on watchOS?

在 watchOS 上,我使用以下代码绘制了一个圆圈:

// Create a graphics context
UIGraphicsBeginImageContext(CGSize.init(width: 18.0, height: 18.0))
let context = UIGraphicsGetCurrentContext()

// Draw a circle
let rect = CGRect.init(x: 1.0, y: 1.0, width: 16.0, height: 16.0)
let border = UIBezierPath(ovalIn: rect)
border.lineWidth = 1.0
UIColor.white.setStroke()
border.stroke()

// Convert to UIImage
let cgimage = context!.makeImage();
let uiimage = UIImage(cgImage: cgimage!)

// End the graphics context
UIGraphicsEndImageContext()  

圆圈画好了,但是很难看,好像有云纹,看图,"XX"文字左边:

应该可以避免这种模式并画一个干净的圆圈,因为时间也显示得很清楚。但是怎么办?

UIGraphicsBeginImageContext 创建绘制比例为 1 的上下文。换句话说,它是非 Retina。

尝试替换

UIGraphicsBeginImageContext(CGSize.init(width: 18.0, height: 18.0))

UIGraphicsBeginImageContextWithOptions(CGSize.init(width: 18.0, height: 18.0), false, 0)

为屏幕比例指定 0 使其默认为当前屏幕比例。如果这不起作用,请告诉我。 :)