Android では、ScrollView を XML ファイルのルートとして使用し、その中に他のさまざまな種類のビューを含めて、スクロール動作を許可していました。
Swift 2.1 と Xcode 7.1.1 はどのようにこれを行うのでしょうか? Android の XML コードで行ったように、ストーリーボードは、入れたいさまざまな種類のビューをすべて挿入するのに十分な長さではありません。
私はAndroidの頭脳を持つiOSを考えています:(
Android では、ScrollView を XML ファイルのルートとして使用し、その中に他のさまざまな種類のビューを含めて、スクロール動作を許可していました。
Swift 2.1 と Xcode 7.1.1 はどのようにこれを行うのでしょうか? Android の XML コードで行ったように、ストーリーボードは、入れたいさまざまな種類のビューをすべて挿入するのに十分な長さではありません。
私はAndroidの頭脳を持つiOSを考えています:(
インターフェース ビルダー オブジェクト ライブラリにも、iOS 用のスクロール ビューがあります。
ここで最初から最後まで、ストーリーボードで機能させる方法を示します。
1: ビュー コントローラーに移動し、[属性インスペクター] をクリックします。
2: [サイズ] を [推定] ではなく [フリーフォーム] に変更します。
3: ストーリーボードのメイン ビューに移動します。スクロール ビューではなく、トップ レベル ビューに移動します。
4: [Size Inspector] をクリックして、このビューを目的のサイズに設定します。身長を1000に変更しました。
これで、ストーリーボードにビューが設定されていることがわかります。これにより、簡単にデザインできるようにスクロールの高さ全体を確認できます。
5: スクロールビューにドロップしてストレッチし、ビュー全体を占めるようにします。これで、View Controller のビューにサイズ 320,1000 の scrollview が表示されるはずです。
次に、スクロールしてコンテンツを正しく表示する必要があります。
6: スクロールビューをクリックし、Identity Inspector をクリックします。
7: ContentSize の KeyPath を使用してユーザー定義のランタイム属性を追加し、次に SIZE のタイプを指定して、コンテンツ サイズを入力します。私にとっては(320、1000)です。
ストーリーボードにスクロール ビュー全体を表示したいので、それを伸ばして 320,1000 のフレームを持っていますが、これをアプリで機能させるには、フレームをスクロール ビューが表示されるように変更する必要があります。
8: タイプ RECT および 0,0,320,416 の KeyPath フレームでランタイム属性を追加します。
アプリを実行すると、フレームが 0,0,320, 416 のスクロール ビューが表示され、1000 までスクロールできます。次に、ランタイム属性により、適切に表示されるようにします。これらすべてを 1 行のコードなしで実行できます。
これはあなたが考えていたことですか?
スクロール ビューのサイズを変更する場合は、これを試すことをお勧めします。
あなたがしたいのは、スクロールビューをView Controllerにドロップして、制約を追加することです。
これまでスクロール ビューを使用したことがないため、これは機能しない可能性があります。
ストーリーボードは十分な長さです:
必要なのは、フリーフォーム ビューを作成し、上から下への自動レイアウト制約を使用してすべてのコンテンツをそのフリーフォーム ビューに配置し、そのビューを のコンテンツとして使用することだけUIScrollView
です。
チュートリアル
UIScrollView
UIView
をサブビューとして追加UIScrollView
UIView
ます。4. および 6. と同じルールを使用して、上から下 (および左から右)のAutoLayout チェーンの制約をたどることができることを確認します。方法論
次の構造を使用して、ビューの階層を作成します。
UIView
(UIViewController
UIScrollView
スクローラー (ルートとの関係でストレッチする必要があります)UIView
(スクローラーのスクロールバーと領域を決定します)コンテンツのサイズを決定するものを理解する
端から端までの AutoLayout 制約の連続性規則を理解する
囲まれたビューに対してエンクロージャーのサイズを相対的に作成するには (例で垂直方向に達成しようとしているもの):
► GitHubでこのソリューションを見つけ、 Swift Recipesで詳細を確認してください。