2

2 つのサブビュー (iPad) を持つスクロールビューがあります。ビューの階層は次のとおりです。

-- UIScrollView
   -- UIView1
   -- UIView2

UIScrollViewのフレームは画面サイズ、UIView1のフレームも画面サイズですが、UIView2のフレームは(0,0,768,2000)です。

スクロールビューは垂直方向にスクロールしません。Apple のドキュメントによると、スクロールビューはコンテンツ サイズを自動的に設定する必要があります。コンテンツサイズが適切に設定されていない理由として、この問題について誰か助けてもらえますか?

P:S: スクロールビュー内で単一のビューを使用し、適切な垂直方向の制約を設定すると、適切にスクロールします。

4

6 に答える 6

2

自動レイアウトを有効にすると、スクロールビューはスクロールしません。技術的には、スクロールすると、スクロールビュー内のすべての要素の位置が変わります。したがって、スクロールビュー内の要素の位置を固定している場合は、自動レイアウトを使用してください。

代わりに UIView を、 button 、 label 、 imageview などの他のすべてのオブジェクトを含む scrollview 内のコンテナー ビューとして使用します。その後、スクロールできるようになります。

詳細については、以下のリンクを確認してください: https://developer.apple.com/library/ios/technotes/tn2154/_index.html

あなたの問題では、コンテンツサイズの適切な値を入れてみてください。また、垂直スクロールが有効になっているかどうかも確認してください。

于 2013-10-08T09:58:08.440 に答える
0

要点 :'contentSize'の設定に誤りが'UIScrollView'あるため、手動で設定する必要があります。

あなたの質問にあるように

スクロール ビュー フレーム = 画面フレーム、
ビュー 1 フレーム = 画面フレーム、

大丈夫だけど

view 2 frame = (0,0,768,2000),view2 のx,y位置が(0,0)であるため、最初のビューで重複しているため、最初のビューが表示されない可能性があります。

ビュー 2 の後にビュー 1 を垂直に追加する場合、ビュー 2 フレームは次のようになります。

view2.frame = CGRectMake(0,view1.frame.origin.y + view1.frame.size.height , 768,2000);

そして、両方のビューを追加した後、あなたの場合は次のように管理する必要がcontentSizeありUIScrollViewます

scrollView.contentSize = CGSizeMake(768, view1.frame.origin.y + view1.frame.size.height + 2000)

私は簡単なロジックを入れました。それはあなたの場合に役立つかもしれません:

于 2013-10-08T09:52:14.463 に答える
0

AutoLayout で使用するときに scrollview のスクロールを自動的に有効にする方法:

正しく修正するには、以下のリンクを参照してください。

https://medium.com/@pradeep_chauhan/how-to-configure-a-uiscrollview-with-auto-layout-in-interface-builder-218dcb4022d7

上記のヘルプ ガイドに関する質問: どのビューが親ビューですか? scrollViewまたはscrollViewの親?

回答: - ScrollView の親 (scrollview の親であるビューに等しい高さと等しい高さを与える)

于 2018-06-22T14:02:50.490 に答える