回答編集履歴
4
honamiさん。
answer
CHANGED
@@ -23,3 +23,20 @@
|
|
23
23
|
|
24
24
|
絵はこんな感じ。
|
25
25
|

|
26
|
+
|
27
|
+
# honamiさんの回答をコード化
|
28
|
+
|
29
|
+
起点をずらす。
|
30
|
+
viewDidLoad()などで一回代入しておけばいいです。
|
31
|
+
|
32
|
+
```swift
|
33
|
+
secondsImage.layer.anchorPoint = CGPoint(x: 0, y: +1.0)
|
34
|
+
```
|
35
|
+
|
36
|
+
回転部分のコードは変更なし。
|
37
|
+
|
38
|
+
```swift
|
39
|
+
secondsImage.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi * Double(sDeg) / 180.0))
|
40
|
+
```
|
41
|
+
|
42
|
+
絵は「真面目に」と同じです。
|
3
修正。
answer
CHANGED
@@ -16,13 +16,10 @@
|
|
16
16
|
変換するの面倒なのでSwift2.3です。
|
17
17
|
|
18
18
|
```swift
|
19
|
-
let offsety = secondsImage.bounds.height/2;
|
20
|
-
|
19
|
+
let t1 = CGAffineTransformMakeTranslation(0, -secondsImage.bounds.height/2) //起点ずらす
|
21
|
-
|
20
|
+
let t2 = CGAffineTransformMakeRotation(CGFloat(M_PI * Double(sDeg) / 180.0)) //回転
|
22
|
-
|
21
|
+
secondsImage.transform = CGAffineTransformConcat(t1, t2) //合体!
|
23
|
-
secondsImage.transform = t;
|
24
22
|
```
|
25
23
|
|
26
24
|
絵はこんな感じ。
|
27
25
|

|
28
|
-
|
2
真面目に。
answer
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
+
# 手抜き
|
2
|
+
|
1
|
-
|
3
|
+
簡単なのは下のような画像を用意することです。
|
2
4
|

|
3
5
|
|
4
6
|
赤が秒針で、緑が回転の中心になります。
|
@@ -8,3 +10,19 @@
|
|
8
10
|
> 'M_PI' is deprecated: Please use 'Double.pi' or '.pi' to get the value of correct type and avoid casting.
|
9
11
|
|
10
12
|
書いてある通り`Double.pi`を使って下さい。
|
13
|
+
|
14
|
+
# 真面目に
|
15
|
+
|
16
|
+
変換するの面倒なのでSwift2.3です。
|
17
|
+
|
18
|
+
```swift
|
19
|
+
let offsety = secondsImage.bounds.height/2;
|
20
|
+
var t = CGAffineTransformMakeTranslation(0, +offsety); //起点をずらして
|
21
|
+
t = CGAffineTransformRotate(t, CGFloat(M_PI * Double(sDeg) / 180.0)) //回転させて
|
22
|
+
t = CGAffineTransformTranslate(t, 0, -offsety); //元に戻す
|
23
|
+
secondsImage.transform = t;
|
24
|
+
```
|
25
|
+
|
26
|
+
絵はこんな感じ。
|
27
|
+

|
28
|
+
|
1
π
answer
CHANGED
@@ -2,4 +2,9 @@
|
|
2
2
|

|
3
3
|
|
4
4
|
赤が秒針で、緑が回転の中心になります。
|
5
|
-
黒い外枠は分かりやすいように付けているだけで、実際には下半分は透明です。
|
5
|
+
黒い外枠は分かりやすいように付けているだけで、実際には下半分は透明です。
|
6
|
+
|
7
|
+
> 下記のような警告が出てます
|
8
|
+
> 'M_PI' is deprecated: Please use 'Double.pi' or '.pi' to get the value of correct type and avoid casting.
|
9
|
+
|
10
|
+
書いてある通り`Double.pi`を使って下さい。
|