在我的自定义UIView和draw:inRect初始化程序中,我有以下代码:

override func draw(_ rect: CGRect) {
    super.draw(rect)

    //...

    let axisPath = UIBezierPath()

    axisPath.move(to: CGPoint(x: paddingHorizontal + 20, y: paddingVertical))
    axisPath.addLine(to: CGPoint(x: leftOffset, y: bottomOffset))
    axisPath.addLine(to: CGPoint(x: rect.width - paddingHorizontal, y: bottomOffset))
    axisPath.lineWidth = 1

    UIColor.black.set()
    axisPath.stroke()

    var currentIndex = 0

    for yearData in data {

      //...

        let circle = UIBezierPath(roundedRect: CGRect(x: x - 4, y: y - 4, width: 8, height: 8), cornerRadius: 4)
        circle.fill()
        circle.stroke() //red circle, I need to make it blinking somehow
        //...
    }

    //...
}


结果如下:

ios - 如何在UIView的draw:indiRect:方法内添加闪烁的圆圈?-LMLPHP

现在我需要使红色圆圈闪烁:)我该怎么做?

最佳答案

我会采取另一种方法。仅将draw(_:)用于图形的静态部分。

闪烁的红色圆圈应该是在图形视图上添加的一个简单的小子视图。使用重复的UIView动画通过其alpha属性淡入和淡出小圆圈视图。

有关执行闪烁动画的示例,请参见How do I get this fade animation to work?

关于ios - 如何在UIView的draw:indiRect:方法内添加闪烁的圆圈?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43659967/

10-13 03:51