objective c - How can a UIViewController inside a UIPageController get touch events? -
it seems button doesn't pressed.
i tried:
uipageviewcontroller gesture recognizers
however, here catch
if page transition of uipageviewcontroller uipageviewcontrollertransitionstylescroll then
self.view.gesturerecognizers = self.pageviewcontroller.gesturerecognizers; nslog(@"%@",self.pageviewcontroller.gesturerecognizers.description); nslog(@"%@",self.pageviewcontroller.gesturerecognizers.description); will empty.
i tried adding own gesturerecoqnizers instead of button uiviewcontrollers's subview. still doesn't work.
so have uipageviewcontroller display uiviewcontroller view has button. how button pressed?
i tried both solutions here:
http://emlyn.net/posts/stopping-gesture-recognizers-in-their-tracks
none works. first of cannot disable gesture recoqnizers of uipageviewcontroller because there no such thing. in scrollview mode, uipageviewcontroller doesn't have gesture recoqnizers.
i tried add own gesture recoqnizers own button never called.
i want uipageviewcontroller still handle swipe though. not tap.
i can't access gesture recoqnizers of uipageviewcontrollers because self.pageviewcontroller.gesturerecognizers empty. uipageviewcontroller seems "absorb" tap events. button doesn't it.
i can add button in front of uipageviewcontroller button absorb swiping action want uipageviewcontroller still handle.
by way if uses template ios (create page based app, , change transition scroll pageviewcontroller.gesturerecoqnizers empty
- (void)viewdidload { [super viewdidload]; // additional setup after loading view, typically nib. // configure page view controller , add child view controller. self.pageviewcontroller = [[uipageviewcontroller alloc] initwithtransitionstyle:uipageviewcontrollertransitionstylescroll navigationorientation:uipageviewcontrollernavigationorientationhorizontal options:nil];//turn scroll view self.pageviewcontroller.delegate = self; sddataviewcontroller *startingviewcontroller = [self.modelcontroller viewcontrolleratindex:0 storyboard:self.storyboard]; nsarray *viewcontrollers = @[startingviewcontroller]; [self.pageviewcontroller setviewcontrollers:viewcontrollers direction:uipageviewcontrollernavigationdirectionforward animated:no completion:null]; self.pageviewcontroller.datasource = self.modelcontroller; [self addchildviewcontroller:self.pageviewcontroller]; [self.view addsubview:self.pageviewcontroller.view]; // set page view controller's bounds using inset rect self's view visible around edges of pages. cgrect pageviewrect = self.view.bounds; if ([[uidevice currentdevice] userinterfaceidiom] == uiuserinterfaceidiompad) { pageviewrect = cgrectinset(pageviewrect, 40.0, 40.0); } self.pageviewcontroller.view.frame = pageviewrect; [self.pageviewcontroller didmovetoparentviewcontroller:self]; // add page view controller's gesture recognizers book view controller's view gestures started more easily. self.view.gesturerecognizers = self.pageviewcontroller.gesturerecognizers; nslog(@"%@",self.pageviewcontroller.gesturerecognizers.description); //this empty while (false); }
maybe can set custom gesture recognizer in uipageviewcontroller. way, able filter through uitouch events, implementing in gesture recognizer delegate (the 1 uipageviewcontroller) :
- (bool)gesturerecognizer:(uigesturerecognizer *)gesture shouldreceivetouch:(uitouch *)touch { if (touch.tapcount > 1) { // ignore touch less 2 finger return yes; } return no; } this, tell uipageviewcontroller gesturerecognizer not care touch 1 finger. you'll have try it, think might trick. problem here have ask user two-finger swipe...
check here other answer
Comments
Post a Comment