私は垂直方向にスクロールするuiscrollviewを持っています-少し進んでスクロールビューを必要とするタブバーアプリの「このアプリについて」ページを想像してください。これには、いくつかの画像、ビデオ、およびテキストのみが含まれます(ビデオのみがコーディングされています。残りはGUIに配置されています)。ストーリーボード(Interface Builder?)Xcode 4.2では、すべてが適切に設定され、正常に機能しますが、ビューは画面に表示されているものと同じ大きさしかなく、ストーリーボードにあるアイテムを手動で配置することはできません最初はオフスクリーン-上にスクロールする必要があるか?これまでに見つけた唯一の方法は、表示されているビューでそれらをデザインしてから、矢印キーで下にナビゲートすることです。
あなたの痛みが分かります。私が見つけた唯一の方法は、サイズインスペクターで手動でスクロールビューをパンして、視覚的に編集するビューの部分を表示することです。
UIViewを使用して要素を含め、要素がこのビューに対して相対的に配置されるようにします。ビューをサブビューとしてスクロールビューの0,0に追加します。
スクロールビューフレームの長方形が、含まれているビューよりも小さいことを確認してください。
ストーリーボードでviewControllerを選択し、属性インスペクタで「サイズ」を「フリーフォーム」に変更します。次に、ビュー/スクロールビューの「高さ」を必要な大きさに変更します。 strutsとspringsのデフォルト設定では、アプリの実行時にビューのサイズを正しく変更する必要がありますが、再確認する必要があります。
新規:2013年3月26日
ストーリーボードで直接UIScrollViewを処理するためのさらに簡単な方法だと思いました。
ここに私がやったことがあります(**で強調された重要な部分):( code を参照)
Code を参照してください。ViewControllerを選択し、ビューをスクロールしてインスペクターを確認します。
ビューコントローラーの[シミュレーションサイズ]をフリーフォームに変更し、通常のサイズよりも高い高さを設定するだけで、編集する必要があるすべてのアウトレットを確認できます。
IOS 6.0では、コンテナービューをスクロールビュー内にドラッグできます。これにより、現在のシーンの外に、コンテンツの新しいビューが自動的に作成されます。その後、コンテンツに合わせて、必要に応じてこのビューのサイズを変更できます。
実行時にScrollViewコンテンツの高さを設定する必要があると思いますが、少なくともIBを上下にスクロールしなくても、コンテンツビューを一度にデザインできます。
サイズを変更しようとしているビューから「サブビューの自動サイズ変更」のチェックを外すだけで、すべてのオブジェクトのサイズが変更されなくなります。
私は現在iOS 7用のアプリを開発しており、@ Dickey Singhの回答とまったく同じように作成しましたが、最初は機能しません。ストーリーボードを確認したところ、scrollViewを保持するビューコントローラーの自動レイアウト制約も追加する必要があることがわかりました。このような自動レイアウト制約はXcode 5の前に自動的に追加されるようですが、今は自分で行う必要があります。制約を追加する方法:まず、ストーリーボードでビューコントローラーを選択します。トップメニューに「エディター」と入力します。 「自動レイアウトの問題を解決する」を選択します。 「不足している制約をコンテナに追加」を選択します。完了:-)
私はしばらくこれに苦労してきました、そして私が試みたすべてのことは失敗しました。
具体的には、私が達成しようとしているのは、別のビューのコンテナーを含むスクロール可能なビューを持つフリーフォームサイズのモーダルダイアログです。時々正常に機能するなど、さまざまな結果が得られました。ほとんどの場合、正確に表示されますが、スクロールはありません。
最後にダウンロードされたDickey Singhのコードは完全に機能しましたが、特別なものは何もありませんでした。 (優れたクリーンソリューションBTW)。それで、コードにあったように、それにコンテナービューを追加しましたが、壊れました!
いくつかの実験の後、私は何が起こっているのかを考え出しました。我慢して。
1)自動レイアウトを使用すると、スクロールビューのサイズによって、スクロール境界がどのようになるかが決まります。 「USer Defined Runtime Attributes」で「contentSize」を設定してもこれには影響がないようで、「viewWillDisplay」または「viewDidLoad」で「contentSize」または「bounds」を設定することもできません。したがって、スクロールビューの初期サイズが800x800の場合、それが表示可能なすべてのスペースになります。このため、スクロール可能な領域が必要な場合は、コンテナービューを作成し、コンテンツ内にスクロールビューを配置します。
2)自動レイアウトを使用しない場合、「ユーザー定義のランタイム属性」で「contentSize」を設定すると、「viewDidLoad」でプログラムで設定する場合と同様に機能します。 「ユーザー定義ランタイム属性」を使用することをお勧めします。レイアウトでサイズが維持されるためです。このソリューションでは、スクロールビューを設計時に任意のサイズにすることができるため、より柔軟に使用できます。
3)自動レイアウトに関係なく、スクロール領域内のビューが水平または垂直フレーム境界のいずれかに完全に一致する場合、スクロールビューはスクロールビューとして機能しなくなります。これは、自分のコードと、私が試したすべての可能な構成でのDickey Singhのコードに適用されます。
何が原因かはわかりませんが(3)、明らかにバグです。
これがスクロールビューの使用に苦労しているすべての人の役に立つことを願っています。一部の人々が問題なくそれらを使用していることを想像し、一部の人々(私のように)はそれらに問題があるが、問題があったと思います。
ストーリーボードの画面全体よりも大きいコンテンツのScrollViewを設計するための私のソリューションは次のとおりです(まあ、1行のコードを除いて:-):