###前提・実現したいこと
前回の質問で解決した所の
回転を止める所で現在の状態ですと
止めた時に一番最初の状態に戻るので、それを直したいです
###該当のソースコード
swift
1 //CABasicAnimationのtransform.zを使用する 2 let rotationAnimation = CABasicAnimation(keyPath:"transform.rotation.z") 3 4 5 func spinAnim(_ sender: UIView) 6 { 7 rotationAnimation.toValue = CGFloat(Double.pi / 180) * 360//回転角度 8 rotationAnimation.duration = 0.8//アニメーションにかかる時間 9 rotationAnimation.repeatCount = .infinity//何回繰り返すか(MAXFLOATを修正) 10 11 //アニメーションさせたいものにaddする 12 sender.layer.add(rotationAnimation, forKey: "rotationAnimation") 13 } 14 15 func spinStop(_ sender: UIView) 16 { 17 sender.layer.removeAnimation(forKey:"rotationAnimation") 18 }
状態を保存する際にtoValueを入れると保存可能と調べたら出ましたので、
このfunc spinStopを
swift
1 func spinStop(_ sender: UIView) 2 { 3 if let anim = sender.layer.animation(forKey:"transform.rotation.z"){ 4 let base = anim as! CABasicAnimation 5 sender.layer.transform = base.toValue as! CATransform3D 6 sender.layer.removeAnimation(forKey:"rotationAnimation") 7 } 8 }
こう変更した所エラーが出ました
###発生している問題・エラーメッセージ
問題としましては、エラーメッセージなどはなく動くのですが、 ストップボタンを押した時に回転が止まらないようになってしまっています・・・。
###試したこと
このように記述する前にいろいろ試すとエラーメッセージで値が0、nilと言われ続けたので
現在は質問した通りのようにしてエラーをなくせたのですが、その代わり止まらない状態になってしまいました・・・。
###補足情報(言語/FW/ツール等のバージョンなど)
Xcode8.3,Swift3です。
頑張って調べて行くと言っておいてすぐで、大変申し訳ございません・・・。
どれだけ調べて、Swift3用に直して試してもエラーメッセージばかりで、どうしても力不足を感じてしまいました・・・。
ヒントとなるサイトだけでもご教示、ご教授いただけるとありがたいです・・・。
おそらくこのrotationAnimationを開始しようとした時もこのようなことが起こりえそうです・・・・・・。
宜しくお願い致します・・・・・・。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/25 03:00
2017/04/25 03:47
2017/04/25 04:17
2017/04/25 04:30
2017/04/25 06:03
2017/04/25 06:15 編集
2017/04/25 06:40
2017/04/25 07:11 編集
2017/04/26 01:03
2017/04/26 01:42 編集
2017/04/26 01:52
2017/04/26 02:17
2017/04/26 02:25
2017/04/26 06:21
2017/04/26 07:11
2017/04/26 07:18