私はMGSplitView、テーブルビューを含むアプリと、UIWebView横向きに固定されたアプリを持っています。Web ビューにはUITapGestureRecognizer(トリプルタップ用) が Web ビューに添付されています。Web ビューの左側の部分をタップすると機能します。Web ビューの右側のタップは失われます。アクションはトリガーされず、ジェスチャ デリゲート メッセージは受信されません。
MGSplitViewControllerへの切り替えにUISplitViewControllerも同じ問題があるため、問題は にあるようには見えません。タップから長押しに変更しても同じ結果になります。
タップ位置は、x座標がgesture.viewの最大幅またはそれに近い値で報告されますが、明らかにディスプレイの中央近くに作られています。これは問題の根本に関係していると思いますが、それでもWeb ビューのコンテンツがはっきりと表示され、正しく配置されています。
関連するすべてのビュー コントローラは と を実装shouldAutorotateしsupportedInterfaceOrientationsているため、縦向きに固執する可能性は低いと思われます。つまりMGSplitViewController、私のUITableViewサブクラス (左側のパネル) とUIViewController右側のパネルのサブクラスです。
私のジェスチャ認識エンジンは、1 回のトリプルタップ (右側のパネルの Web ビューのビュー) からの委任と出力を行います。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
NSLog(@"%s", __PRETTY_FUNCTION__);
NSLog(@"gestureRecognizer view frame: %@", NSStringFromCGRect(gestureRecognizer.view.frame));
NSLog(@"location %@", NSStringFromCGPoint([gestureRecognizer locationInView:gestureRecognizer.view]));
return YES;
}
-[DocumentBrowser gestureRecognizer:shouldReceiveTouch:]
gestureRecognizer view frame: {{0, 0}, {703, 704}}
location {703, -20}
-[DocumentBrowser gestureRecognizer:shouldReceiveTouch:]
gestureRecognizer view frame: {{0, 0}, {703, 704}}
location {414.5, 204.5}
-[DocumentBrowser gestureRecognizer:shouldReceiveTouch:]
gestureRecognizer view frame: {{0, 0}, {703, 704}}
location {414.5, 204.5}
報告された最初の場所は奇妙に思えます。