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

回答編集履歴

1

コメントの質問に対する回答を追記

2015/09/22 16:04

投稿

shiolier
shiolier

スコア1156

answer CHANGED
@@ -7,4 +7,28 @@
7
7
 
8
8
  ![スクショ](bffa2c93d6b52fb86c3b875a7f402605.png)
9
9
 
10
- 名前からして、おそらくコレのことだと思います。
10
+ 名前からして、おそらくコレのことだと思います。
11
+
12
+ ---
13
+
14
+ コメントの
15
+ > UILayoutGuideはUIViewとは無関係のクラスのようですが、なぜself.viewのsubviewsとして登録することができてるのでしょうか?
16
+ に関してですが、
17
+ 「Appleがそう定めているから」でしょうね。
18
+ ふざけているのではなく、至って真面目です。
19
+
20
+ おっしゃる通り、UILayoutGuideのドキュメントを見る限り、UIViewとの親子関係はないようで、
21
+ ```Swift
22
+ let layoutGuide = UILayoutGuide()
23
+ self.view.addSubview(layoutGuide)
24
+ ```
25
+ このように書くとコンパイルエラーになりますし、
26
+ ```Swift
27
+ let layoutGuide = UILayoutGuide()
28
+ self.view.addLayoutGuide(layoutGuide)
29
+ ```
30
+ このように書いたからといって、`self.view.subviews`に追加されたりはしません。
31
+
32
+ なので、そもそも`_UILayoutGuide`と`UILayoutGuide`が別物なのか、或いは、`Top Layout Guide`&`Bottom Layout Guide`として、2つだけ追加できるようにAppleが定めているのか。
33
+
34
+ どちらにせよ、当然といえば当然ですが、iOSの世界は、Appleができるといえばできる、Appleができないといえばできない、そういう世界ですから、あまり気にしすぎないほうがいいと思いますよ。