2016-08-13 8 views
1

enter image description hereUIScrollViewの高さを画面の高さにリサイズしますか?

ブラック - スクリーンフレーム/サイズ

レッド - デフォルトUIScrollViewののフレーム/サイズ

イエロー - 私のボタン。

私はそのボタンを常に下部に置いておきたいと思います。だから3.5インチのスクリーンでは、スクロールが利用可能で、ボタンは底にあり、問題はありません。今、私たちが5.5インチの画面に移動すると、このイメージのようになり、ボタンはもはや底にはありません。私は何をしようとしていることはUIScrollViewのの高さを変更ですが、それは動作しません:

if(self.view.frame.height > contentView.frame.height) 
    { 
     print("fixing scroll view") 
     contentView.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height * 2) 
     scrollView.contentSize = CGSizeMake(self.view.frame.width, self.view.frame.height * 2) 
    } 

self.view.frame.height * 2だけのテストのためです。何が間違っていますか?

+0

1つは、なぜautolayoutを使用しないのですか?それはあなたのためにこれを行います。それがオプションでない場合、このコードはおそらくviewDidLayoutSubviewsメソッドで正しく動作する必要があります。 – TheValyreanGroup

+0

ValyreanGroupどうすればこのためにautolayoutを使うことができますか?そして、私はviewDidLayoutSubviewsにどのように入れることができますか?ちょうどiOSの学習learninf –

+0

あなたは自動レイアウトを有効にしているとストーリーボードを使用していますか? – TheValyreanGroup

答えて

0

自動レイアウトでは、スクロールビューにスーパービューの各隅にピン制約を追加するだけです。

Auto layout pins

0にあなたの4つの制約を設定して、あなたはすべてのセットでしょう。

+0

しかし、どのようにして最低の高さを設定できますか?私は600以上が必要です。そうでなければ3.5インチに収まらないでしょうが、5.5インチではフルハイトになる必要があります –

+0

異なるサイズの画面に異なるレイアウトが必要な場合は、サイズクラスを使用できます。サイズクラスをAny Anyから必要なサイズに変更し、それに制約を設定します。どちらのサイズを使用していても、それらの制約が使用されます。これは、ストーリーボードビューの下部中央に表示され、制約ツールとインラインで表示されます。 – TheValyreanGroup

関連する問題