2016-06-30 23 views
0

私はXcodeを初めて使用しています。その下に2つのボタンがある正方形のImageViewを使用した非常に単純なレイアウトがあります。私はScrollViewでラップされているボックス(viewForZoomingInScrollViewのサブビューターゲットとして)と呼ばれるUIViewでこれらをラップします。アプリを画面の中央に配置する方法

私は、SingleViewテンプレートで2つの異なる方法で構築しようとしました。最初の方法では、ViewControllerのビューをScrollViewに変更しました。

enter image description here

第二に、私はまた、このようなのViewControllerのビュー内のScrollviewでそれを試してみました。

enter image description here

期待通りにすべてがを除いて、いずれの場合においても、正常に動作しますか:どちらの場合も、全体のViewControllerにかかわらず、向きやズームレベルの、画面の左上隅に固定されたままになります。私はこのような何の制約を持っていない場合は

*すっごい、*

を私は一日ですべての私のリソース管理や行動の問題を解決し、今私はレイアウトと戦っほぼ週に費やしてきた:

enter image description here

アプリがこのように開きます。ビューは黒で、ScrollViewは紫で、箱はDKGrayある、と私はそれをピンチするとImageViewのはLTGray

View is Black, ScrollView is Purple, Box is DKGray, and ImageView is LTGray

で、画像は左上に固定(バウンスした後に)とどまります。

enter image description here

私はScrollViewとボックスへの制約を中心に追加した場合

enter image description here

ScrollViewの制約が尊重されますが、ボックスのではありません。 (アプリはボックスScrollViewを満たす開いたときに実際に、それが唯一のボックスが左上に上がるというピンチの後である。制約を破壊スクロールすることができます...?私はscrollViewDidEndZoomingに制約を置く必要がありますか?)

enter image description here

私の現在のサブ質問です。レイアウトに十分な制約がない場合は、追加する必要があります。それが追加する制約は私よりも優先されますか?どのような制約が追加されているかを確認する方法はありますか?私は上記の制約をもってこれらの警告を得る。アーチ質問オーバー

enter image description here

は、どのように私はそれがiOSの画面の中央にあるように得るか、または画面を埋めるために?私はInterface Builderソリューションとコードソリューションがあると思いますが、いずれかまたは両方が関心事です。

読んでいただきありがとうございます。

+0

どのような制約を追加しましたか? –

+1

質問は説明なしで投票できますか?それは本当にStackoverflowの使用を奨励します。 – adazacom

+0

何らかの理由で、最初の状況では、制約は必要ありませんでした。第二に、それは不平を言ったので、私は "提案された制約"を加えました。画像ビューはボックスの上、右、左に固定され、ボタンは下のボックスの上と下の画像ビューに固定されます。 – adazacom

答えて

1

scrollViewを選択し、autoLyoutのピンメニューでこれらの制約を追加しようとします。

enter image description here

+0

助けてくれてありがとう。私は、これらのような制約とScrollViewとBoxへのすべての異なる方法を追加しようとしましたが、私は階層内で十分に高くなっていないようです。彼らはちょうど左上に固定された矩形内で何が起こるかに影響し、画面上にその矩形を配置するのではないと考えます。 – adazacom

+0

あなたのプロジェクトを共有することができます。 –

+0

どうすれば共有できますか? – adazacom

2

要素の配置に

を変更する各要素は、それはそれの親に表示されるべき場所を概説する制約を持っている必要があります。つまり、ビュー内のスクロールビュー内に画像があります。したがって、これら3つの要素のそれぞれに制約が設定されている必要があります。

  1. 「の水平コンテナ内」と「垂直方向の容器に」チェックボックスにチェックを入れ下部にあるボタンの新しいアライメントcontraints追加」をクリックして要素
  2. をクリックしてください:各要素について

    [2つの制約を追加]ボタンをクリックします。

アプリを実行すると、画像が水平方向と垂直方向の両方で中央揃えになります。

要素サイズを動的に変更する これはストーリーボードでも簡単に実行できます。このビデオでは、それを行う方法を説明しています:https://www.youtube.com/watch?v=aSsR1NlQvMA 唯一の余分なことは、上記のように各要素でこれを行う必要があることです。

+0

お返事ありがとうございます。私は上記で試したことの多くを追加しました。センタリングの制約を追加すると、ScrollViewは中央に配置されますが、Boxは配置されません。 – adazacom

+0

Boxを、より小さい画面サイズのほぼ100%に設定したいと考えています。私はコードでそれをしなければなりませんか? – adazacom

+0

OK - ボックス要素からすべての制約を削除して、もう一度やり直します。時にはそれらは矛盾します。また、問題のナビゲータを確認してください。左上にプロジェクトファイルをナビゲートすると、フォルダアイコンが選択されていることがわかります。 3つは警告アイコンです。ここでの警告は、「ボックス」要素を参照していますか?元のコメントを更新して、要素のサイズを変更する方法を含めます。 – Christie

関連する問題