回答編集履歴

1

回答を変更

2020/08/11 03:09

投稿

TsukubaDepot
TsukubaDepot

スコア5086

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