10

UIWindow には、あいまいなレイアウトを見つけるのに役立つプライベート メソッド _autolayoutTrace があります。これは非常に便利で、次のような出力が得られます。

*<UIWindow:0x13436fd0> - AMBIGUOUS LAYOUT
|   *<UIView:0xd5e0b30>
|   |   *<PbJellyContentContainerView:0xd5e0ff0>
|   |   |   *<UIView:0x20710ee0>
|   |   |   |   *<PbMapContainerView:0x20710c90>
|   |   |   |   |   <MKMapView:0x2070df70>
|   |   |   |   |   |   <UIView:0xd1cca20>
|   |   |   |   |   |   |   <MKBasicMapView:0xd1cd020>
....

私の質問はあいまいさについてではありません。一部のビューの前にあるアスタリスクについてです。その意味は何ですか?

私の推測では、自動レイアウトを使用しているすべてのビューをマークしていると思います。しかし、システムはこれをどのように判断するのでしょうか?

アップデート:

アスタリスクは、少なくとも 1 つの制約セットを持つビュー、または少なくとも 1 つの制約セットを持つサブビューを持つすべてのビューをマークしているようです。

制約を設定せずに translatesAutoresizingMaskIntoConstraints を false に設定しても、アスタリスクは表示されません。

4

2 に答える 2

9

これは、31:00 の WWDC 2015 セッション #219 ビデオの凡例-[UIView _autolayoutTrace]です

* - is laid out with auto layout
+ - is laid out manually, but is represented in the layout engine because translatesAutoresizingMaskIntoConstraints = YES
• - layout engine host
于 2015-07-16T19:59:27.290 に答える