【问题标题】:CGPath curve line flickering with black filling, when fill is set to clear color当填充设置为清除颜色时,CGPath 曲线线闪烁黑色填充
【发布时间】:2018-01-19 07:52:45
【问题描述】:

简单的正弦波CGPath。

添加到黑色闪烁的图层时,视频:

https://gfycat.com/PaleIllAustraliansilkyterrier

照片(它看起来像这样持续几毫秒):

shapeLayer.lineWidth = 1
shapeLayer.fillColor = UIColor.clear.cgColor
shapeLayer.strokeColor = UIColor.white.cgColor

我记得几年前经历过类似的事情并做了一些解决方法,但现在我找不到确切的项目。

我已经检查过视野宽度可以除以波的长度,但没有运气。

一些社区想法?你有过这样的经历吗?

【问题讨论】:

    标签: swift uibezierpath cashapelayer cgpath


    【解决方案1】:

    闪烁可能来自设置填充颜色。您应该将此颜色设置为背景颜色或(更好)nil 其中avoids filling。清晰的颜色和没有颜色的不一样。

    【讨论】:

    • 设置为零会产生零效应。如果我评论它,它就会充满黑色。
    • 形状图层的背景颜色是什么?能否请您插入动画和完整图层配置的代码示例?
    • 这就是重点 - 作为背景,可以有相机视图。您可以在此处找到代码:github.com/soggybag/Sine-Wave/blob/master/Sine%20Wave/…,drawSineWaves 函数。
    • 不幸的是,您的代码对以前的 Swift 版本有一些依赖项和回复,因此无法快速运行。但是,我强烈建议您使用CABasicAnimationCAKeyFrameAnimation 为路径设置动画。这将为您提供更好的性能,并且可能会避免闪烁。
    • 好的,我刚刚将sine.shapeLayer.fillColor = nil 放在viewDidLoad 的顶部,它会停止闪烁。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多