回答編集履歴
1
回答を変更
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
|
|