teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答を変更

2020/08/11 03:09

投稿

TsukubaDepot
TsukubaDepot

スコア5086

answer CHANGED
@@ -1,3 +1,26 @@
1
+ StackOverflow からの引用ほぼそのまま(メソッド名の書き換えのみ)ですが、下記の例の方が一時停止も再開もやりやすそうに感じました(初回の回答はアニメーションそのものを削除するため)。
2
+
3
+ - [Is there a way to pause a CABasicAnimation?](https://stackoverflow.com/questions/2306870/is-there-a-way-to-pause-a-cabasicanimation)
4
+
5
+ ```Swift
6
+ func pauseAnimation(){
7
+ let pausedTime = layer.convertTime(CACurrentMediaTime(), from: nil)
8
+ layer.speed = 0.0
9
+ layer.timeOffset = pausedTime
10
+ }
11
+
12
+ func resumeAnimation(){
13
+ let pausedTime = layer.timeOffset
14
+ layer.speed = 1.0
15
+ layer.timeOffset = 0.0
16
+ layer.beginTime = 0.0
17
+ let timeSincePause = layer.convertTime(CACurrentMediaTime(), from: nil) - pausedTime
18
+ layer.beginTime = timeSincePause
19
+ }
20
+ ```
21
+
22
+ ###元の回答
23
+
1
24
  アニメーションを完全に止めるのであれば、こんな感じでいかがでしょうか。
2
25
 
3
26
  ```Swift