2016-07-08 9 views
0

私はgameViewを持っています。私はこのgameViewを画面の下部と側面に固定し、高さを475に設定します。ユーザーがこのビューをタップすると、ポイントが見つけられ、セルの原点とフレームを持つカスタムビュー(fenceView)が作成されます幅と高さ)。 fenceViewのinitメソッドでは、私はフェンス画像の新しいUIImageViewを作成し、それをサブビューとして追加します。 Potrait Viewサブビューはスーパービューに比例してサイズ変更されません

自動レイアウトのため、デバイスを回転すると、gameViewの幅がそれに応じて変更されます。しかし問題は、追加されたfenceViewsのサイズが変更されないことです。私は、gameviewとfenceViewの両方に対してautoresizingMask = [.FlexibleWidth、.FlexibleHeight]を設定しようとしました。しかし、それは問題を解決しませんでした。 Landscape mode

風景モードでは、フェンス画像が正しく表示されないことがわかります。それは私がやっている小さな間違いかもしれませんが、私は2日以来この問題を解決することができません。どんな助けでも大歓迎です。全体の高さは常にautoresizingMask = [.FlexibleWidth.FlexibleLeftMargin.FlexibleRightMargin]を設定してみてください475となりますので、

+0

これはSpriteKitの使用を検討しましたか?それはUIViewsを使用するよりも良い一致するようです。 –

+0

私は迅速かつIOSに新しいです。 SpriteKitについてはわかりません。私はそれがハイエンドのゲームデザインのためだと思った。確認してみるよ。デバイスが回転するときにサイズを変更するには青のgameViewが必要です(私の自動レイアウトはこれを行います)。今度は、サブビューのサイズを適切に調整する必要があります。 SpriteKitを使用する利点があるかどうかを指定できますか? – Suhas

答えて

1

.FlexibleHeightを使用する必要はありません。

幅は、より大きい/小さい幅のX位置だけでなく、変更する必要があります。フレキシブルな左右両方のマージンは、両側に幅を広げます。

+0

アントニオーニさん、ありがとうございました。私はほぼ自動レイアウトをあきらめて無効にしていました。ソリューションが機能し、画像のサイズが適切に調整されています。このオートサイジングマスクを学ぶことができる場所はありますか?また、これはコードで追加されたサブビューへの適切なアプローチですか? – Suhas

+0

それは良い質問です。私はそれがもう頻繁に使用されるとは思わないので、私はAuto Resizingに関するドキュメントを見つけることができないようです。私は自動サイズ変更を検索します。ビューを使用する方法がわかっている場合、ビューを制約することは非常に簡単な手段です。それ以外の場合は、xibファイルのAutoLayout Constraintsに固執します。あなたのアプローチは、各サブビューを制約する良い簡単な方法のように思えます。 – Antonioni

+0

こんにちは、別のアプローチは、AutoLayout制約を使用することです。このアプリケーションのサブビューではどうすれば使用できますか?たとえば、fenceViewの場合、先頭の余白= gameView.leading + 40、次に、gameViewのサイズ変更時に、itheの制約は同じで、以前の画像のようにエラーが作成されます。 – Suhas

関連する問題