回答編集履歴
4
おまけ2
answer
CHANGED
@@ -10,3 +10,34 @@
|
|
10
10
|
# おまけ
|
11
11
|
|
12
12
|
上に来るViewを最前面に表示させればいいので`self.view.sendSubviewToBack()`は不要です。
|
13
|
+
|
14
|
+
# おまけ2
|
15
|
+
|
16
|
+
タップ時はフラグを変更してレイアウト更新を依頼する。
|
17
|
+
実際のレイアウト変更はviewDidLayoutSubviews()で行う。
|
18
|
+
|
19
|
+
この方法だと、Storyboardを使っていても大丈夫だと思います。
|
20
|
+
|
21
|
+
```swift
|
22
|
+
var isMap = true
|
23
|
+
|
24
|
+
override func viewDidLayoutSubviews() {
|
25
|
+
super.viewDidLayoutSubviews()
|
26
|
+
|
27
|
+
if isMap {
|
28
|
+
//childを縮小して上に、mapは拡大
|
29
|
+
} else {
|
30
|
+
//mapを縮小して上に、childは拡大
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
@IBAction func ChangeMapView(sender: AnyObject) {
|
35
|
+
isMap = true
|
36
|
+
self.view.setNeedsLayout()
|
37
|
+
}
|
38
|
+
|
39
|
+
@IBAction func ChangeChildView(sender: AnyObject) {
|
40
|
+
isMap = false
|
41
|
+
self.view.setNeedsLayout()
|
42
|
+
}
|
43
|
+
```
|
3
おまけ
answer
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# その1
|
2
|
-
|
3
1
|
```swift
|
4
2
|
// 親ビューの子供に設定
|
5
3
|
self.parentView.addSubview(self.mapView)
|
@@ -9,6 +7,6 @@
|
|
9
7
|
Storyboardで配置しているのですから、このコードは必要ないのでは?
|
10
8
|
画面に見えているのはコードで追加したViewで、タップした時にサイズ/優先を変更しているのはStoryboardで配置したViewになっていると思います。
|
11
9
|
|
12
|
-
#
|
10
|
+
# おまけ
|
13
11
|
|
14
12
|
上に来るViewを最前面に表示させればいいので`self.view.sendSubviewToBack()`は不要です。
|
2
説明追記。
answer
CHANGED
@@ -7,6 +7,7 @@
|
|
7
7
|
```
|
8
8
|
|
9
9
|
Storyboardで配置しているのですから、このコードは必要ないのでは?
|
10
|
+
画面に見えているのはコードで追加したViewで、タップした時にサイズ/優先を変更しているのはStoryboardで配置したViewになっていると思います。
|
10
11
|
|
11
12
|
# その2
|
12
13
|
|
1
その2
answer
CHANGED
@@ -1,7 +1,13 @@
|
|
1
|
+
# その1
|
2
|
+
|
1
3
|
```swift
|
2
4
|
// 親ビューの子供に設定
|
3
5
|
self.parentView.addSubview(self.mapView)
|
4
6
|
self.parentView.addSubview(self.childView)
|
5
7
|
```
|
6
8
|
|
7
|
-
Storyboardで配置しているのですから、このコードは必要ないのでは?
|
9
|
+
Storyboardで配置しているのですから、このコードは必要ないのでは?
|
10
|
+
|
11
|
+
# その2
|
12
|
+
|
13
|
+
上に来るViewを最前面に表示させればいいので`self.view.sendSubviewToBack()`は不要です。
|