非常にシンプルな三目並べゲームの作成を始めました。主な目標は、すべてのiOSデバイスのすべての画面サイズに比例してビューを作成することです。そこで、画像をViewController
に配置し、画面のフルサイズにしてから、スタックビューに配置します。このスタックビュー0にすべての側面に制約を追加しました。そして、シミュレーターを実行すると、すべてが見栄えがよくなります。しかし、コンソールパネルにメッセージが表示されます。どういう意味ですか?
UIStackView
でレイヤーが変更されると、この警告が表示されます。警告が指摘しているように、UIStackView
はtransform-only layerであり、UIView
とは少し異なります。ドキュメントに従って:
UIStackViewは、UIViewの非レンダリングサブクラスです。つまり、独自のユーザーインターフェイスを提供しません。代わりに、配置されたビューの位置とサイズを管理するだけです。その結果、いくつかのプロパティ(backgroundColorなど)はスタックビューに影響しません。同様に、layerClass、drawRect :、またはdrawLayer:inContext:をオーバーライドすることはできません。
これについての詳細 here 。
OPの問題の正確な原因を示していないかもしれませんが、UIStackView
の振る舞いが同じではなく、UIView
と混同してはならない理由を明らかにすることが望まれます。
必要な人のために:StackViewでclipToBounds
をfalseに設定します。
あなたがしたことは完全に正しいようです。
ただし、スタックビューなしで側面を簡単に固定できるのに、なぜイメージビューをスタックビューに入れることを選んだのか疑問に思います。私はスタックビューの大ファンですが、どこでも意味がありません。新しいビューを追加すること、およびticktactoeボードのサイズを変更することを計画していない限り、私はそれを使用しない可能性があります。