我工作的公司同时拥有iOS和tvOS版本的应用程序。该应用程序在底部绘制一个脚本,供用户在锻炼期间保持运作,如下所示:
在针对iOS的任何应用中,这已经运行了一年多。然而,当使用相同的绘图代码瞄准tvOS时,而不是按照我期望的方式绘制,在绘制每一行之后,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版本做些什么?
答案 0 :(得分:1)
所以经过几天尝试解决这个问题后,感谢一个答案(https://stackoverflow.com/a/43898524/2820553)在我的文档中指出了一行,我需要给我的视图一个背景颜色,否则绘图可能会发生错误:
如果视图的opaque属性也设置为YES,则视图的backgroundColor属性不能为nil,否则可能会出现绘图错误。
只需将视图背景设置为清晰的颜色即可解决此问题。令人惊讶的是,它并没有在iOS中体现出来,而是在tvOS中体现出来。希望这可以帮助其他人寻找类似的东西。