0

私が現在セットアップしているiOSアプリに取り組んでいます:

経由で UITableViewController に接続された RootViewController

[self addChildViewController:tableVC];

rootViewControllers ビューのサブビューとして tableVC.view を使用します。次に、RootVC には UIPanGestureRecognizer があり、これを使用してテーブルを左にパンするアニメーションを作成します。

これはすべて正常に機能し、テーブルは静的ビューとしては優れていますが、起動しようとすると

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

セルをタップしても呼び出されません。ジェスチャ認識によってタップが誤って登録されているかどうかは既に確認しましたが、そうではありません。

tableView が画面上にあるときに子 UITableViewController にタップを送信するように RootVC に伝える必要がありますか?

4

1 に答える 1

0

UITableViewのスーパービューのclipToBoundsプロパティの使用に関する彼のアドバイスでこれを解決するのを手伝ってくれてありがとうrdelmar 。

これは、パンによって明らかにされた UIView がスーパービューの境界外にあるため、タッチに反応しないことを示していました。

すべてのサブビューを囲む適切な寸法を持つ別のビュー「spanView」を追加することで、これを解決しました。この後、彼らは予想通りにタッチに反応しました。

階層は最終的に次のようになりました。

                         -> leftTableView
RootVC.view - > spanView -> centerView
                         -> rightTableView

viewDidLoad iOSがrootVC.viewをデバイス画面の境界に設定した後、これを達成するためにRootVCのサブビューを作成する必要があったことに注意してください

于 2013-07-11T19:08:12.637 に答える