Swift
1for tmpView: UIView in self.view.subviews {
2 print("ClassName : \(NSStringFromClass(tmpView.dynamicType))")
3}
このようなコードを書くと、_UILayoutGuide
というものが2つ存在していることが分かります。
名前からして、おそらくコレのことだと思います。
コメントの
UILayoutGuideはUIViewとは無関係のクラスのようですが、なぜself.viewのsubviewsとして登録することができてるのでしょうか?
に関してですが、
「Appleがそう定めているから」でしょうね。
ふざけているのではなく、至って真面目です。
おっしゃる通り、UILayoutGuideのドキュメントを見る限り、UIViewとの親子関係はないようで、
Swift
1let layoutGuide = UILayoutGuide()
2self.view.addSubview(layoutGuide)
このように書くとコンパイルエラーになりますし、
Swift
1let layoutGuide = UILayoutGuide()
2self.view.addLayoutGuide(layoutGuide)
このように書いたからといって、self.view.subviews
に追加されたりはしません。
なので、そもそも_UILayoutGuide
とUILayoutGuide
が別物なのか、或いは、Top Layout Guide
&Bottom Layout Guide
として、2つだけ追加できるようにAppleが定めているのか。
どちらにせよ、当然といえば当然ですが、iOSの世界は、Appleができるといえばできる、Appleができないといえばできない、そういう世界ですから、あまり気にしすぎないほうがいいと思いますよ。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/22 10:53
2015/09/22 11:06