teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

全面改訂。

2018/03/29 06:09

投稿

fuzzball
fuzzball

スコア16733

answer CHANGED
@@ -1,61 +1,38 @@
1
+ ##### アウトレット
2
+
1
3
  ```swift
2
- //外側Viewのheight
3
- @IBOutlet weak var viewBaseHeight: NSLayoutConstraint!
4
4
  //内側View
5
5
  @IBOutlet weak var viewRed: UIView!
6
6
  @IBOutlet weak var viewYellow: UIView!
7
7
  @IBOutlet weak var viewBlue: UIView!
8
+ //内側Viewのbottom
9
+ @IBOutlet weak var bottomRed: NSLayoutConstraint!
10
+ @IBOutlet weak var bottomBlue: NSLayoutConstraint!
11
+ @IBOutlet weak var bottomYellow: NSLayoutConstraint!
8
12
  ```
9
13
 
10
- アウトレットはこんな感じで、
14
+ ##### 制約
11
15
 
12
- # #1 内側Viewの高さ情報Storyboard場合
16
+ * 内側Viewのbottom外側Viewのbottomに合わせる。(エラーになるの、一だけ有効にして他はinstalledのチェックを外しておく)
17
+ * その他の制約は適当に。
13
18
 
14
- ##### 外側Viewの制約
19
+ ##### 選択時
15
20
 
16
- * leading, trailing, topはViewに合わせる。
21
+ * 選んだ内側Viewを表示し、bottom制約を有効る。
17
- * heightは適当
22
+ * それ以外の内側Viewを非表示のし、bottom制約を無効にする。
18
23
 
19
- ##### 内側Viewの制約
20
-
21
- * leading, trailing, topは外側Viewに合わせる。
22
- * heightはそれぞれの高さ。
23
-
24
- ##### 内側Viewを選択
25
-
26
- * 選んだ内側Viewを表示。それ以外の内側Viewは非表示。
27
- * 選んだ内側Viewの高さを外側Viewに設定する。
28
-
29
24
  ```swift
30
25
  @IBAction func selectedRed(_ sender: UIButton) {
26
+ //red
31
27
  viewRed.isHidden = false
28
+ bottomRed.isActive = true
29
+ //yellow
32
30
  viewYellow.isHidden = true
31
+ bottomYellow.isActive = false
32
+ //blue
33
33
  viewBlue.isHidden = true
34
- viewBaseHeight.constant = viewRed.frame.height
34
+ bottomBlue.isActive = false
35
35
  }
36
36
  ```
37
37
 
38
- # #2 内側Viewの高さ情報をコードで持つ場合
39
-
40
- ##### 外側Viewの制約(#1と同じ)
41
-
42
- * leading, trailing, topはViewに合わせる。
43
- * heightは適当
38
+ とりあえずベタ書きで‥。
44
-
45
- ##### 内側Viewの制約
46
-
47
- * 外側Viewに合わせる。(例えば、leading, trailing, top, bottomを全て外側Viewに合わせる)
48
-
49
- ##### 内側Viewを選択
50
-
51
- * 選んだ内側Viewを表示。それ以外の内側Viewは非表示。(#1と同じ)
52
- * 外側Viewの高さに選んだ内側Viewの高さを設定する。
53
-
54
- ```swift
55
- @IBAction func selectedRed(_ sender: UIButton) {
56
- viewRed.isHidden = false
57
- viewYellow.isHidden = true
58
- viewBlue.isHidden = true
59
- viewBaseHeight.constant = 100 //Redの高さ
60
- }
61
- ```