2015-06-26 7 views
5

My SetupCome utilizzare UIGestureRecognizerDelegate?

Sto cercando di replicare l'interfaccia della scheda di Google Now.

Ho un UIView che è una sottoview di (interno) a UIScrollView. Entrambi sono controllati dallo stesso UIViewController. Il UIView ha un UIPanGestureRecognizer collegato ad esso dal UIViewController.

Lo UIScrollView viene utilizzato per scorrere verso l'alto e verso il basso. Lo UIPanGestureRecognizer viene utilizzato per scorrere via lo UIView.

Il problema

non riesco a scorrere quando sto toccando il UIView (la carta)

La questione

Come faccio a implementare UIGestureRecognizerDelegate per consentire gestureRecognizer(_:shouldRecognizeSimultaneouslyWithGestureRecognizer:) sulla carta in modo che lascerà lo scroll UIScrollView?

Ho passato diverse ore a cercare di capirlo, e sarei incredibilmente grato per l'aiuto.

risposta

5

Nel caso in cui qualcuno si sta chiedendo come fare questo, ecco la risposta:

Quando si dichiara la classe, aggiungere UIGestureRecognizerDelegate dopo che la classe che le sottoclassi. Ecco che cosa assomiglia nel mio caso:

class CardViewController: UIViewController, UIGestureRecognizerDelegate

successivo, si aggiunge questa funzione per il corpo del UIViewController:

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool { 
    return true 
} 

E, infine, si esegue questa operazione per la UIPanGestureRecognizer:

somePanGestureRecognizer.delegate = self