在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"文本:
应该可以避免这种模式并绘制一个干净的圆圈,因为时间也清楚地显示出来。但是如何?
答案 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会使其默认为当前屏幕比例。如果这不起作用,请告诉我。 :)