回答編集履歴

1

全面改訂。

2018/03/29 06:09

投稿

fuzzball
fuzzball

スコア16731

test CHANGED
@@ -1,8 +1,8 @@
1
+ ##### アウトレット
2
+
3
+
4
+
1
5
  ```swift
2
-
3
- //外側Viewのheight
4
-
5
- @IBOutlet weak var viewBaseHeight: NSLayoutConstraint!
6
6
 
7
7
  //内側View
8
8
 
@@ -12,45 +12,35 @@
12
12
 
13
13
  @IBOutlet weak var viewBlue: UIView!
14
14
 
15
+ //内側Viewのbottom
16
+
17
+ @IBOutlet weak var bottomRed: NSLayoutConstraint!
18
+
19
+ @IBOutlet weak var bottomBlue: NSLayoutConstraint!
20
+
21
+ @IBOutlet weak var bottomYellow: NSLayoutConstraint!
22
+
15
23
  ```
16
24
 
17
25
 
18
26
 
19
- アウトレットはこんな感じで、
27
+ ##### 制約
20
28
 
21
29
 
22
30
 
23
- # #1 内側Viewの高さ情報をStoryboardで持つ場合
31
+ * 内側Viewのbottomを外側Viewのbottomに合わせる。(エラーになるので、一つだけ有効にして他はinstalledのチェックを外しておく)
32
+
33
+ * その他の制約は適当に。
24
34
 
25
35
 
26
36
 
27
- ##### 外側Viewの制約
37
+ ##### 選択時
28
38
 
29
39
 
30
40
 
31
- * leading, trailing, topはView合わせる。
41
+ * 選んだ内側Viewを表示し、bottom制約を有効る。
32
42
 
33
- * heightは適当
34
-
35
-
36
-
37
- ##### 内側Viewの制約
38
-
39
-
40
-
41
- * leading, trailing, topは外側Viewに合わせる。
42
-
43
- * heightはそれぞれの高さ。
44
-
45
-
46
-
47
- ##### 内側Viewを選択
48
-
49
-
50
-
51
- * 選んだ内側Viewを表示。それ以外の内側View非表示。
43
+ * それ以外の内側View非表示のし、bottom制約を無効にする
52
-
53
- * 選んだ内側Viewの高さを外側Viewに設定する。
54
44
 
55
45
 
56
46
 
@@ -58,13 +48,23 @@
58
48
 
59
49
  @IBAction func selectedRed(_ sender: UIButton) {
60
50
 
51
+ //red
52
+
61
53
  viewRed.isHidden = false
54
+
55
+ bottomRed.isActive = true
56
+
57
+ //yellow
62
58
 
63
59
  viewYellow.isHidden = true
64
60
 
61
+ bottomYellow.isActive = false
62
+
63
+ //blue
64
+
65
65
  viewBlue.isHidden = true
66
66
 
67
- viewBaseHeight.constant = viewRed.frame.height
67
+ bottomBlue.isActive = false
68
68
 
69
69
  }
70
70
 
@@ -72,50 +72,4 @@
72
72
 
73
73
 
74
74
 
75
- # #2 内側Viewの高さ情報をコードで持つ場合
76
-
77
-
78
-
79
- ##### 外側Viewの制約(#1と同じ)
80
-
81
-
82
-
83
- * leading, trailing, topはViewに合わせる。
84
-
85
- * heightは適当
75
+ とりあえずベタ書きで‥。
86
-
87
-
88
-
89
- ##### 内側Viewの制約
90
-
91
-
92
-
93
- * 外側Viewに合わせる。(例えば、leading, trailing, top, bottomを全て外側Viewに合わせる)
94
-
95
-
96
-
97
- ##### 内側Viewを選択
98
-
99
-
100
-
101
- * 選んだ内側Viewを表示。それ以外の内側Viewは非表示。(#1と同じ)
102
-
103
- * 外側Viewの高さに選んだ内側Viewの高さを設定する。
104
-
105
-
106
-
107
- ```swift
108
-
109
- @IBAction func selectedRed(_ sender: UIButton) {
110
-
111
- viewRed.isHidden = false
112
-
113
- viewYellow.isHidden = true
114
-
115
- viewBlue.isHidden = true
116
-
117
- viewBaseHeight.constant = 100 //Redの高さ
118
-
119
- }
120
-
121
- ```