如何在iOS

时间:2015-12-28 09:54:04

标签: ios swift animation

我在drawRect方法中绘制了一个wave,但它突然出现在屏幕上。我想为波创建过程设置动画,例如,应该逐步缓慢地创建wave,以便用户可以看到它 这是我用来绘制波浪的代码

override func drawRect(rect: CGRect) {

    let context = UIGraphicsGetCurrentContext()
    CGContextSetLineWidth(context, 2.0)
    GContextSetStrokeColorWithColor(context, UIColor.redColor().CGColor)
    var startX : CGFloat = 10
    var EndX : CGFloat = 30
    var CpX : CGFloat = 20
    var CpY : CGFloat = 160
    var Y : CGFloat = 200

    for(var i = 0 ; i<5 ; i++ )
    {
        CGContextMoveToPoint(context, startX, Y)
        CGContextAddQuadCurveToPoint(context, CpX, 160, EndX, 200)
        CGContextStrokePath(context)
        startX += 20
        CpX += 20
        EndX += 20

        CGContextMoveToPoint(context, startX, Y)
        CGContextAddQuadCurveToPoint(context, CpX, 240, EndX, 200)
        CGContextStrokePath(context)
        CpX += 20
        startX += 20
        EndX += 20

    }
  }

this is how it looks on screen

1 个答案:

答案 0 :(得分:0)

您可以将绘图功能放在后台任务中,并添加时间延迟,但是当您需要刷新屏幕时需要调用主任务。

正如你在这里所说的,这只会向你显示5个部分中的波形,所以如果你想看到更小的增量,你可能想要回到更基本的触发功能

onReceive()

或者,您可以在拥有它时绘制波形,并使用具有时间延迟循环的背景任务逐渐删除位于顶部的不透明视图