如何在draw中添加闪烁的圆圈:inRect:UIView的方法?

时间:2017-04-27 13:56:24

标签: ios swift uiview

在我的自定义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
        //...
    }

    //...
}

结果如下:

enter image description here

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

2 个答案:

答案 0 :(得分:1)

我会采取不同的方法。仅将draw(_:)用于图表的静态部分。

闪烁的红色圆圈应该是在图表视图中添加的简单小子视图。使用重复的UIView动画使用其alpha属性淡入淡出小圆圈视图。

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

答案 1 :(得分:-1)

设置NSTimer并根据它绘制和取消您的红色圆圈。您至少有两个选择:将红色圆圈设置为UIView并恰好设置隐藏标记,或者在计时器上切换标记并使红色圆圈所包含的区域无效。