CATransform3Dを使って、画像をy軸もしくはx軸に回転する方法を教えてください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答を確認した時間が遅かったため、返事を書くのが遅くなりました。すみません。
回答1件
0
ベストアンサー
以下のサイトをSwift3
に書き直してみました、参考にしてみてください。
※UIView
でやっていますが、UIImageView
に置き換えても同じ事はできます。
swift
1import UIKit 2 3 4class ViewController: UIViewController { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 9 let view : UIView = UIView(frame: CGRect(x: 100, y: 100, width: 100, height:100)) 10 11 view.backgroundColor = UIColor.blue 12 view.isUserInteractionEnabled = true 13 view.tag = 1 14 self.view.addSubview(view) 15 16 } 17 18 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 19 super.touchesBegan(touches, with: event) 20 21 if let vi = touches.first?.view { 22 23 switch vi.tag { 24 case 1: 25 let animation : CABasicAnimation = CABasicAnimation(keyPath: "transform") 26 animation.duration = 0.5 27 animation.repeatCount = 1 28 animation.autoreverses = true 29 30 // X軸 31 //let transform : CATransform3D = CATransform3DMakeRotation(CGFloat(M_PI), 1.0, 0.0, 0.0) 32 33 // Y軸 34 let transform : CATransform3D = CATransform3DMakeRotation(CGFloat(M_PI), 0.0, 1.0, 0.0) 35 animation.toValue = NSValue(caTransform3D : transform) 36 37 vi.layer.add(animation, forKey: "transform") 38 default: 39 break 40 } 41 } 42 } 43}
投稿2016/12/01 12:25
編集2016/12/01 12:29総合スコア8490
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/02 13:00
素晴らしいです。うまく動きました。ありがとうございます。
追加で二点教えて教えてください。
1、3秒毎に自動で反転し、その際、画像変えたい。
2、y軸斜め45度回転とかできないでしょうか。
2016/12/03 02:46
1はぱっとわからないのですが、2は
let transform : CATransform3D = CATransform3DMakeRotation(CGFloat(M_PI), 1.0, 1.0, 0.0)でいけます。
2016/12/03 09:55
斜め回転バッチリです。ありがとうございます。????
1でやりたいことは、例えば、コインの表と裏を表示したいです。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。