私は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}
報告された最初の場所は奇妙に思えます。