在watchOS上使用核心图形的莫尔效应?

时间:2016-11-07 15:51:23

标签: core-graphics uibezierpath watch-os

在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"文本:
enter image description here
应该可以避免这种模式并绘制一个干净的圆圈,因为时间也清楚地显示出来。但是如何?

1 个答案:

答案 0 :(得分:1)

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

尝试替换

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

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

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