2

UIPageViewControllerのビューが追加されたUIViewControllerがあります。そのUIPageViewControllerには、サブビューとして追加されたUITableViewを持つサブビューを持つページがあります。iOS 6を使用していますが、セルをクリックしてもメソッドdidSelectRowAtIndexPathが呼び出されません。しかし、奇妙な「バグ」があります...ページを途中でめくってから(ページめくりを完了せずに)元のページに戻ると、セルを選択できます。これはジェスチャレコグナイザーと関係があると思いますが、理解できません。UIPageViewControllerのインスタンス化からジェスチャレコグナイザーを削除しようとしましたが、それを機能させることができませんでした。

このようにUIPageViewControllerからタップジェスチャレコグナイザーを削除しましたが、それでもバグのある動作が存在します...

for (UIGestureRecognizer *recognizer in pageViewController.gestureRecognizers) {
    if ([recognizer isKindOfClass:[UITapGestureRecognizer class]]) {
        recognizer.enabled = NO;
    }
}

助言がありますか?

4

2 に答える 2

0

UIViewの サブクラス UITableView。としましょうmyUIView

UITableViewデリゲートをに実装しますmyUIView

myUIViewのサブビューとして追加しUIPageControlます。

UITableViewデリゲートmyUIViewがトリガーされます。

于 2013-03-13T21:36:55.303 に答える
0

それは非常に単純なものであることが判明しました。UIViewControllerで、autoresizingMaskをFlexibleHeightに設定しました。何らかの理由でNoneに変更すると、問題が修正されました。

// self.contentView.autoresizingMask = UIViewAutoresizingFlexibleHeight;

// Changed to :

 self.contentView.autoresizingMask = UIViewAutoresizingNone;

誰かがこれが事実である理由にいくらかの光を当てることができれば、私はそれをいただければ幸いです。

于 2013-03-28T19:36:08.030 に答える