在我的自定义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
//...
}
//...
}
结果如下:
现在我需要让红色圆圈闪烁:)我该怎么做?
答案 0 :(得分:1)
我会采取不同的方法。仅将draw(_:)
用于图表的静态部分。
闪烁的红色圆圈应该是在图表视图中添加的简单小子视图。使用重复的UIView
动画使用其alpha
属性淡入淡出小圆圈视图。
有关执行闪烁动画的示例,请参阅How do I get this fade animation to work?。
答案 1 :(得分:-1)
设置NSTimer并根据它绘制和取消您的红色圆圈。您至少有两个选择:将红色圆圈设置为UIView并恰好设置隐藏标记,或者在计时器上切换标记并使红色圆圈所包含的区域无效。