UIBezierPathを使ったアニメーションで、線を徐々に描いていくようなアニメーションを実現させたいです。
なんとなくUIBezierPathとCAKeyFrameAnimationを組み合わせれば出来そうな気がするのですが、具体的なプログラムが想像できず、困っております。
あらかじめ決められたポイントに沿って、UIBezierPathで引いたパスの上を実線で描いていく、イメージとしてはペンで紙の上に線を描いていくような感じです。
何卒、よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
こんなんでどうでしょう。
viewDidLoadで生成しているパスを変えれば円形以外のも書けるはずです。
参考サイト:
http://c-geru.com/as_blind_side/2015/10/uibezierpath.html
ViewController.swift
1class ViewController: UIViewController { 2 3 let shapeLayer: CAShapeLayer = { 4 let layer = CAShapeLayer() 5 layer.frame = CGRect(x: 0, y: 0, width: 100.0, height: 100.0) 6 layer.fillColor = UIColor.clearColor().CGColor 7 layer.strokeColor = UIColor.blueColor().CGColor 8 layer.lineWidth = 1.0 9 return layer 10 }() 11 12 override func viewDidLoad() { 13 super.viewDidLoad() 14 15 // 円形に描画するのでそのパスを生成 16 let center = CGPoint(x: self.shapeLayer.bounds.size.width / 2.0, y: self.shapeLayer.bounds.size.height / 2.0) // 中心座標 17 let radius = self.shapeLayer.bounds.size.width / 3.0 // 半径 18 let startAngle = CGFloat(-M_PI_2) // 開始点(真上) 19 let endAngle = startAngle + 2.0 * CGFloat(M_PI) // 終了点(開始点から一周) 20 let path = UIBezierPath(arcCenter: center, radius: radius, startAngle: startAngle, endAngle: endAngle, clockwise: true) 21 self.shapeLayer.path = path.CGPath 22 23 self.view.layer.addSublayer(self.shapeLayer) 24 } 25 26 override func viewDidLayoutSubviews() { 27 super.viewDidLayoutSubviews() 28 29 // 画面の中心になるようにする 30 self.shapeLayer.position = CGPoint(x: self.view.bounds.size.width / 2.0, y: self.view.bounds.height / 2.0) 31 } 32 33 override func viewWillAppear(animated: Bool) { 34 super.viewWillAppear(animated) 35 36 // アニメーション開始 37 let anim = CABasicAnimation(keyPath: "strokeEnd") 38 anim.duration = 3.0 39 anim.fromValue = 0.0 40 anim.toValue = 1.0 41 shapeLayer.addAnimation(anim, forKey: "circleAnim") 42 } 43 44}
投稿2016/01/29 05:51
総合スコア950
0
以下のサイトの色を変更している処理を線を描く処理に変更すれば、
アニメーションするような気がします。
ただし、線を描く処理にもよると思いますが。
http://dev.classmethod.jp/references/ios-uikit-keyframeanimation/
投稿2016/01/29 04:37
総合スコア1336
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/29 05:59
退会済みユーザー
2016/01/29 06:03
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/01/29 06:02
退会済みユーザー
2016/01/29 06:06 編集