2016-03-24 16 views
0

私は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; 
} 

これはをスクロールしないview1view3しかしview2で美しくトリックをやっています。私は彼らがすべて同じクラス、UIScrollViewを持っていることを確認しました、そして、それらはすべて私が期待したインスタンス変数に配線されています。

view2view1主な違いは、view3view 2スクロールが有効にされていないのUITableViewを含んでいることです。これは他のビューと比較して私が把握できる唯一の違いです。私はまた、次のことを試みた

view2ため

  • IはscrollingEnableduserInteractionEnabedの値を記録し、私はIB以内にz成分のビューを並べ替える試み
  • を望むであろうように、これらの両方YESであります。これは何の違いもありませんでした。
  • 私はプログラム的に、多分それは十分ではありません」でしたが、これは私がview2が表示され、他のビューである場合scrollViewDidScrollが再び実行されていないことを確認した場合
  • ませんでした思考上記ループの外で再びview2contentSizeのサイズを変更してみました見えません。
  • view2の背景色を変更して、それが思ったほど大きく、スクロールしようとしたときに私が実際に触っていたことを確認しました。サイコロはありません。
  • 以下の提案では、view2に含まれるテーブルビューのユーザー操作を無効にしました。インタラクションは無効になっていましたが、スクロールが発生しませんでした。
  • view2からスクロールビューを完全に削除するとview2のスクロールを有効にしますが、それは実際の解決策ではありません。

    私は実際にトラブルシューティングの対象について別の目と追加の提案を使用することができます。ありがとうございました。

+0

あなたは、テーブルのためのユーザーの操作を無効にしてみてくださいビュー。これにより、おそらくスクロールビューが期待どおりに機能します。そこから、ユーザーのやりとりを再び有効にするためのさまざまなソリューションを見ることができます。 –

答えて

0

あなたのViewControllerがこのように、UIGestureRecognizerDelegateプロトコルに準拠VIEW2とテーブルビューのためのデリゲートとして設定し、次のプロトコルメソッドを実装して作ってみましょう:

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { 
    return YES; 
} 
関連する問題