私はIBでレイアウトされたビューコントローラのビューを持っていますが、特に私は3つのビューにフレームに関するレイアウト制約があり、 UIScrollView
。それらのコンテンツは異なっています(ユーザーが進行中にナビゲートすると、1つのビューでは消え、次に別のビューでは消えます)。私はUIScrollView
に、これらのビューのすべての3つを設定してから、私はviewWillAppear
の私.m
ファイルに次のコードをドロップ:UIScrollViewは同じビューコントローラ内でほとんど同じものがスクロールしません
NSArray <UIScrollView *> *viewsForScrolling = @[view1, view2, view3];
for (UIScrollView *smallView in viewsForScrolling) {
NSLog(@"here is the class %@", [smallView class]);
smallView.scrollEnabled = YES;
smallView.contentSize = CGSizeMake(smallView.frame.size.width, smallView.frame.size.height*1.4);
smallView.delegate = self;
}
これはをスクロールしないview1
とview3
しかしview2
で美しくトリックをやっています。私は彼らがすべて同じクラス、UIScrollView
を持っていることを確認しました、そして、それらはすべて私が期待したインスタンス変数に配線されています。
view2
とview1
間主な違いは、view3
はview 2
スクロールが有効にされていないのUITableViewを含んでいることです。これは他のビューと比較して私が把握できる唯一の違いです。私はまた、次のことを試みた
:view2
ため
- Iは
scrollingEnabled
とuserInteractionEnabed
の値を記録し、私はIB以内にz成分のビューを並べ替える試み - を望むであろうように、これらの両方
YES
であります。これは何の違いもありませんでした。 - 私はプログラム的に、多分それは十分ではありません」でしたが、これは私が
view2
が表示され、他のビューである場合scrollViewDidScroll
が再び実行されていないことを確認した場合 - ませんでした思考上記ループの外で再び
view2
のcontentSize
のサイズを変更してみました見えません。 view2
の背景色を変更して、それが思ったほど大きく、スクロールしようとしたときに私が実際に触っていたことを確認しました。サイコロはありません。- 以下の提案では、
view2
に含まれるテーブルビューのユーザー操作を無効にしました。インタラクションは無効になっていましたが、スクロールが発生しませんでした。 view2
からスクロールビューを完全に削除するとはview2
のスクロールを有効にしますが、それは実際の解決策ではありません。私は実際にトラブルシューティングの対象について別の目と追加の提案を使用することができます。ありがとうございました。
あなたは、テーブルのためのユーザーの操作を無効にしてみてくださいビュー。これにより、おそらくスクロールビューが期待どおりに機能します。そこから、ユーザーのやりとりを再び有効にするためのさまざまなソリューションを見ることができます。 –