2016-12-13 1 views
0

私はキャンバスやdivで描画するのは描画するオブジェクトの属性を設定してから、setIntervalやrequestAnimationFrameを呼び出して位置を更新して再描画するのが簡単です。drawRectをx秒ごとに描き直す

私は基本的にxcodeのスピーディーでこれをやりたいと思っていますが、私はそれを単独でやり遂げるのに十分なチュートリアルを見つけることができません。

私はdrawRectを使用して必要なものを描画することができましたが、設定方法はわかりません。たとえば、30msごとに座標が変更された形を再描画します。私はできるだけ簡単な方法でそれをやりたいだけです。

のは、私はその中に、このコードで、クラス、drawExampleがあるとしましょう:

override func drawRect(rect: CGRect) { 
    let context = UIGraphicsGetCurrentContext() 
    CGContextSetLineWidth(context, 3.0) 
    CGContextSetStrokeColorWithColor(context, UIColor.purpleColor().CGColor) 

    CGContextMoveToPoint(context, shapePosX, shapePosY + 0) 
    CGContextAddLineToPoint(context, shapePosX + 250, shapePosY + 320) 
    CGContextAddLineToPoint(context, shapePosX + 300, shapePosY + 320) 
    CGContextAddLineToPoint(context, shapePosX + 0, shapePosY + 0) 
    CGContextSetFillColorWithColor(context,UIColor.purpleColor().CGColor) 
    CGContextFillPath(context) 
} 

そして私はちょうどあなたがのUIViewを活用したいと思うタイマー

+0

私はdrawRect()よりも良い方法があると確信しています。それはあまりにも強烈な力です。 – dfd

+0

シェイプ/ライン/などを描画する他の方法はありますか?私はちょうど始まりを得るために単純に行くつもりです、私はパフォーマンスや品質についてあまり心配していません – Dal

答えて

1

を使用してshapePosXとshapePosYを更新したいです& UIViewControllerの組み込みの再描画とタイマー。あなたはのUIViewController内からこれをやる:

Timer.scheduledTimer(withTimeInterval: 1.0, 
          repeats: true, 
          block: { (timer) in 
           self.view.setNeedsDisplay() 
          }) 

注**それを再描画するのUIViewをトリガーsetNeedsDisplay()です。

関連する問題