IOS 7とXcode 5でUIScrollViewを使用しようとすると、垂直スクロールに応答しません。まず、ScrollViewをオブジェクトライブラリからストーリーボードにドラッグアンドドロップし、そのサイズを幅= 320および高さ= 1500に設定してから、3つのラベルをドラッグアンドドロップし、それらのラベルをy = 300、800、1200に配置します。y座標のラベルの場合800と1200に等しいため、最初にスクロールビューを上に移動して、これらのオブジェクトを対応するy値に配置します。次に、scrollviewをアウトレットとして実装ファイルに接続し、viewDidLoad
メソッドでself.myScrollView.contentSize = CGSizeMake(320, 1500)
と記述します。最後に、scrollviewのサイズをwidth = 320およびheight = 568に戻します。次に、シミュレーターを実行しますが、垂直スクロールに反応しません。次に、use autolayout
を実行してシミュレータを再度実行すると、まだまったく機能しません。
では、どうすれば問題を修正できますか?または、誰かがiOS 7とXcode 5のUIScrollViewについて教えてくれる便利なチュートリアルを教えてもらえますか?
Xcode 5.0.2を使用しています。
ありがとう。
self.myScrollView.contentSize = CGRectMake(320, 1500);
をviewWillAppear
内からviewDidLoad
に変更してシミュレーターを実行したところ、何らかの理由でスクロールが機能しました。元の投稿で述べたように、私は最初にviewDidLoad
に書き込み、kkocabiyikの回答を読んだ後、viewWillAppear
に移動しました。では、元のコードが機能しなかった理由がわかりません。おそらく、ManiとRashadから多くの支援を得ている間にコードを少し変更したが、上記のコードをviewWillAppear
内に同時に保持したためです。
同じ罠に巻き込まれて将来この質問に来る人のために、私はこの設定から問題を修正することができました:
viewDidLoad
内にself.myScrollView.contentSize = CGSizeMake(320, 1500);
を書き込みますまた、autolayoutを使用しても機能しないことに注意してください。また、autolayoutを使用してviewWillAppear
内でcontentsizeを設定することもできません。
この質問に協力してくれた皆さんに感謝したい。ありがとうございました。
this ビデオをご覧ください。 XCode 5/iOS 7でUIScrollLayoutとautolayoutを使用する方法を示します。
scrollview height as screensize or less than contentsize.
を設定する必要があります。その後、垂直方向にのみスクロールします。(contensize> scrollview.height)そして、bool vairable scrollEnabled
set _YES
を確認します。
X = 0およびy = 0を設定します。コンテンツサイズを(320,1500)に設定する必要があります。xおよびyではありません。 xとyは、コンテンツサイズではなく、スクロールビューの開始位置を定義します。コンテンツサイズの場合:
self.scrollView.contentSize = CGSizeMake(320, 1500);
お役に立てれば.. :)
AutoLayoutを使用しているときに要素のフレームを変更するかどうかは関係ありません。 AutoLayoutを使用したビューフレームは、viewDidLoad
メソッドで行った処理を無視するように処理されます。 必須 AutoLayoutを使用する場合は、viewDidLoad
で行った作業をviewDidAppear
にコピーして貼り付けることができます。これにより、AutoLayoutが完了した後に行われるすべての作業が行われます。
このチュートリアルは、scrollviewsで私の命を救いました: Scroll View Autolayout Tutorial
onOffScroll.contentSize = CGSizeMake(content width,content height);
viewDidLayoutSubviews
メソッドを使用し、このメソッドのコードを使用します。それはあなたを助けるかもしれません。
私はXcode 6でも同じ問題に直面しました この手順 に従ってください。これは本当に非常に役立ち、時間を節約できます。
ストーリーボードのスクロールビューの高さは画面よりも大きくできないことに気づきました。もっと大きくしたい場合は、ストーリーボードではなくプログラムで行います。
textFieldまたは画像を追加すると、スクロールビューが機能しないという問題が発生しました。すべてをスタックビューに入れることでこの問題を解決しました。その後、携帯電話で実行すると、スクロールすることができました。