1

メインビューコントローラーのUIScrollViewにいくつかのサブビューが追加されています。各サブビューのビューコントローラには、独自のタップ認識機能があります。問題は、画面の開始領域でのタップだけが認識されることです。ビューをスクロールして開始領域を超えてタッピングした後、タッピングハンドラはもはや呼び出されなくなります。UITcGestureRecognizerはUIScrollViewの開始領域に対してのみトリガーされます

このSO UIButton in non-visible area of UIScrollViewを投稿関連すると思わが、その解決策の説明は簡単なレポートプロジェクトはで見つけることができる...

私にはとても明確ではありませんでした:dropbox link

感謝。

+0

問題は何ですか、あなたは両方の部分にタップジェスチャーを追加しましたか? –

+0

スクロールビューのコンテンツサイズは2000 * 800です。これは画面サイズよりも大きくなります。アプリが最初に起動され、ユーザーのテープが表示されると、タップハンドラーが認識されます。画面を右にスクロールし、右端の領域をタップすると、タップハンドラがトリガされなくなります。 –

+0

@MikeAlter両方の部分でスクロール表示の目に見える部分と目に見えない部分を意味しますか?その場合、最初に可視領域を超えた部分にタップジェスチャーを追加するにはどうすればよいですか? –

答えて

0

contentviewのサイズまたはsetbackground colorscrollviewcontentviewを確認してください。 Contenviewサイズが増えていないと思います。

+0

申し訳ありませんが私は何かが明らかに逃した場合。 contentviewを確認するにはどうすればいいですか?私はどこにでも使用していません。ところで、私はscrollviewのサイズをチェックし、それが十分に大きく設定されていることを確認しています。私は単純なレプロでも背景色を設定しています。ありがとう。 –

+0

まだ問題に直面していますか? –

+0

いいえ...助けてくれてありがとう。 –

0

私はあなたのプロジェクトをダウンロードして、あなたが見ることができるように今色

enter image description here

参照

SSubViewController *pvc = [SSubViewController controllerWithSubViewID:0]; 

pvcフレームがバウンド

SSubViewController *pvc = [SSubViewController controllerWithSubViewID:0]; 
[self.scrollView addSubview:pvc.view]; 
[self addChildViewController:pvc]; 
[pvc.view setBackgroundColor:[UIColor grayColor]]; 
[pvc.view setFrame:CGRectMake(0, 0, 400, 200)]; 

[pvc didMoveToParentViewController:self]; 

SSubViewController *pvc1 = [SSubViewController controllerWithSubViewID:1]; 
[self.scrollView addSubview:pvc1.view]; 
[pvc1.view setBackgroundColor:[UIColor yellowColor]]; 
[self addChildViewController:pvc1]; 
[pvc1 didMoveToParentViewController:self]; 
[pvc1.view setFrame:CGRectMake(0, 400, 400, 200)]; 

の外にあることを確認していますグレーカラー、イエローカラーフレーム

+0

入手しました。そして、それは動作します。詳細な説明をありがとうマイク! –

関連する問題