Как переключаться между представлениями с помощью Pan Gesture Recognizer в iOS?

У меня есть два представления, и я хочу использовать жест панорамирования в правильном направлении (например, жест, используемый в приложении Facebook ios), чтобы переключиться на второй вид. Вид должен начать меняться, как только мы начнем использовать жест панорамирования. Как я могу это сделать? У кого-нибудь есть пример кода, который выполняет это действие?


person Shaunak    schedule 10.01.2013    source источник


Ответы (1)


Существует git с примером проекта, на который вы можете ссылаться на эффект бокового меню, который есть в приложении Facebook для iOS.

https://github.com/BenHall/ios_facebook_style_navigation

ИЗМЕНИТЬ:

Хорошо, тогда попробуйте что-то вроде этого:

   UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewSwipedLeft:)];
   [swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
   [self.navigationController.navigationBar addGestureRecognizer:swipeLeft];

Затем обработайте свайп примерно так:

-(void) didSwipedLeft: (UISwipeGestureRecognizer *) gesture {

  if (gesture.state != UIGestureRecognizerStateEnded) {
      return;
  }

  //do something    
}
person jakenberg    schedule 10.01.2013
comment
В примере проекта не используется жест панорамирования... мне нужно переключать виды с помощью жеста панорамирования.. - person Shaunak; 10.01.2013
comment
Я хочу выполнить что-то вроде этого: UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]; [panRecognizer setMinimumNumberOfTouches: 1]; [panRecognizer setMaximumNumberOfTouches: 1]; //[panRecognizer setDelegate:self]; [[собственный вид] addGestureRecognizer:panRecognizer]; - person Shaunak; 10.01.2013
comment
- (void)handlePan:(UIPanGestureRecognizer*)recognizer { CGPoint translation = [recognizer translationInView:recognizer.view]; распознаватель.view.center=CGPointMake(recognizer.view.center.x+translation.x, распознаватель.view.center.y+translation.y); [распознаватель setTranslation:CGPointMake(0, 0) inView:recognizer.view]; } - person Shaunak; 10.01.2013
comment
С помощью этого кода я могу перетаскивать текущий вид в любом направлении и при этом открывать вид под ним. Но в этом коде отсутствующие элементы — это направление жеста панорамирования и изменение подвида при панорамировании. - person Shaunak; 10.01.2013
comment
Вот почему я вместо этого разместил UISwipeGestureRecognizer. - person jakenberg; 10.01.2013
comment
Вы правы, но это не дало бы возможности управлять свайпом, как в приложении facebook. - person Shaunak; 10.01.2013
comment
вы когда-нибудь пришли к выводу об этом? - person Rob; 28.05.2013