绘制到剪切上下文中的渐变不会出现在iPhone 6 plus,6s plus和7 plus的模拟器上

时间:2017-07-11 01:02:52

标签: ios-simulator uibezierpath iphone-6-plus

我有一个使用draw rect的自定义UIView,以典型的方式绘制。创建UIBezierPaths,用于剪切/绘制渐变,然后代码继续执行更多相同的操作。

当此视图的子图层显示时,绘制到剪切上下文中的渐变不会显示,但问题仅出现在那3个模拟器中。渐变显示在所有其他模拟器中。

1 个答案:

答案 0 :(得分:0)

我决定回答这个问题,因为这可能需要很长时间才能找到:

事实证明,只有一个UIBezierPaths是不完美的。我已经手动编辑了这条路径的数字。一旦涉及到不完美的路径,所有梯度都停止工作。没有这条道路,一切都很好。

对于那些可能感兴趣的人来说,这是一条有问题的道路:

let groundPath = UIBezierPath()
groundPath.move(to: CGPoint(x: 0, y: 5))
groundPath.addLine(to: CGPoint(x: 7700, y: 5))
groundPath.addCurve(to: CGPoint(x: 8096, y: 135), controlPoint1: CGPoint(x: 8052, y: 5), controlPoint2: CGPoint(x: 8096, y: 50))
groundPath.addLine(to: CGPoint(x: 0, y: 135))
groundPath.addLine(to: CGPoint(x: 0, y: 5))
groundPath.close()
return groundPath

我已经手动编辑了控制点,看起来我想要的是什么,但有些东西与加号iPhone不相符。