これを使ってlayout
の中にscrollview
を作ろうとしています チュートリアルリンク
そして、次の結果が得られます link
アドバイスやチュートリアルリンクをいただければ幸いです。垂直スクロールのみが必要です
これを行うには他の方法があるはずですが、簡単な修正は次のとおりです。
1.)StoryboradのContentViewに幅の制約を作成します。
2.)そのwidthContraintをIBOutletし、その値をviewDidLoadのビューフレーム幅に設定します。
制約アウトレットの名前がcontentViewWidthContraintであるとします。
contentViewWidthContraint.constant = self.view.bounds.size.width;
ストーリーボードからこれを行う別の方法は、コンテンツビューの幅をストーリーボードからのビューの幅、またはスクロールビューにスーパービューと同じ幅の制約がある場合はスクロールビューに固定することです。 Contentviewからself.viewまたはScrollviewのいずれかに「EqualWidth」制約を追加します(scrollviewの場合、すでに幅制約があります)
スクロールビューの幅と一致するように「ContentView」の幅を設定しましたか?同じ問題が発生し、「Equal Widths」で修正しました。
"Equal Widths"は、 "ContentView"に、 "Scroll View"と同じ幅を使用するように指示します。これは、画面に収まるはずです。制約を適切に設定します。
これはストーリーボードで簡単に行うことができます。
クリックを放すと、メニューが表示されます。「Equal Widths」を選択します。
これにより、ストーリーボードエディタのAutoLayoutでスクロールビューを使用して問題を修正できます。
AutolayoutとStoryboardでScrollViewを使用する方法の完全なチュートリアルを見つけることができます ここ 。
これがあなたのお役に立てば幸いです:)
ストーリーボードで、UIScrollViewに含まれる要素の幅をこのUIScrollViewの幅に等しく設定します(ストーリーボードの左側のパネルで保持されているすべての要素とUIScrollViewを選択し、[ピン]の下に[等しい幅]制約を設定します'ストーリーボードの下部にあります)。要素の右側をUIScrollViewの右側に固定するだけでは機能しません。これは、「表示ビュー」のサイズを最大の要素の幅に調整し、これがUIScrollViewの幅よりも小さい場合はすべての要素が調整されるためです。左側に揃えて表示されます。
水平スクロールを無効にするには、-(void)scrollViewDidScroll
メソッドでコンテンツサイズを設定できます。
[self.scrollView setContentOffset: CGPointMake(0, self.scrollView.contentOffset.y)];
self.scrollView.directionalLockEnabled = YES;
次のように、幅を0に、高さをコンテンツサイズに等しく設定してみてください。
self.scrollView.contentSize = CGSizeMake(0, self.scrollView.contentSize.height);
これはあなたが望むように動作します。それを試して、まだ問題が発生しているかどうかを確認してください。
以下のコードのようにUIScrollView
制約を設定しすぎると、画面全体が占有されます。画面サイズを超えないようにしてください。
Leading Space = 0 from mainView
Top Space = 0 from mainView
Bottom Space = 0 from mainView
Trailing Space = 0 from mainView
これは、スクロールビューでは、コンテンツをどこで終了するかがわからないためです。
ただし、スクロールビュー内の少なくとも1つのアイテムに、スクロールビュー外のビュー(通常、スクロールビューが置かれているビュー、またはその幅を「認識」しているより高いレベルの他のビュー)に「トレーリングスペース」制約がアタッチされている場合)-スクロールビューは、必要な幅について自動的に認識し、水平方向にスクロールしません(末尾の制約がコンテンツを画面の外に置くことを意味する場合を除く)。
スクロールビュー内のすべてのアイテムに、「トレーリングスペース」制約が相互に接続されているか、スクロールビュー外のビューに接続されているとよいでしょう。しかし、スクロールビュー自体ではありません。
これが機能するために追加のコードや追加の制約は必要ありません。
UIScrollViewの幅を親ビューの幅以下に設定する必要があります。それを行う2つの方法:
1)レイアウト制約を介してストーリーボードでこれを行うことができます
2)これはプログラムで行うことができます。
self.scrollView.contentSize = CGSizeMake(self.view.frame.size.width, self.scrollView.contentSize.height);