2017-06-06 39 views
1

我工作的公司拥有iOS和应用程序的tvOS版本。该应用程序在底部绘制一个脚本,以便在锻炼过程中跟上脚步,如下所示:Typical drawing on iOSswift的绘图代码在tvOS上的表现与iOS相比有所不同

这在任何针对iOS的应用程序中运行良好超过一年。然而,在使用相同的绘图代码来定位tvOS时,tvOS视图并没有按照我期望的方式进行绘制,而是在绘制每一行后将tvOS视图称为“痕迹”,而不是仅为当前的一行时间。

Wrong drawing on tvOS

绘图代码如下:

func addIndicatorLine(_ context:CGContext?, rect: CGRect, start: CGPoint, color: UIColor = UIColor.white) { 
    context!.translateBy(x: rect.origin.x, y: rect.height) 
    context!.scaleBy(x: 1.0, y: -1.0) 

    context!.setLineWidth(1.0) 

    context!.setStrokeColor(color.cgColor) 
    context!.move(to: CGPoint(x: start.x, y: 0)) 

    context!.addLine(to: CGPoint(x: start.x, y: rect.size.height - 5)) 
    context!.strokePath() 
    context!.scaleBy(x: 1.0, y: -1.0) 
    context!.translateBy(x: -rect.origin.x, y: -rect.height) 
} 

我失去了一些东西明显,或者是有什么不同我的绘制代码的tvOS版本呢?

回答

1

因此,经过几天的试图弄清楚这一点,多亏了一个答案(https://stackoverflow.com/a/43898524/2820553)指出了文档中的一行,我需要给我的视图一个背景颜色,否则可能会出现绘图错误:

如果视图的不透明属性也设置为YES,则视图的backgroundColor属性不能为零,否则可能会出现绘图错误。

只需将视图的背景设置为清晰的颜色即可解决此问题。令人惊讶的是,它并没有在iOS中表现出来,而是在tvOS中表现出来。希望这可以帮助其他人寻找类似的东西。

相关问题