Slide-out menu

Bonjour à  tous,



Je suis nouveau sur ce forum et vais donc commencer par me présenter.

24 ans, développeur depuis 4 ans, principalement sur du C# et de l'Objective-C. Cela fait maintenant deux ans que je développe pour iOS. Quel bonheur! image/thumbsup.gif' class='bbc_emoticon' alt=' :D ' />



Je m'inscris à  ce forum dans l'objectif d'obtenir de l'aide mais également pour découvrir de nouveaux sujets de dév et pourquoi pas apporter ma pierre à  l'édifice? image/kiss.gif' class='bbc_emoticon' alt=':-*' />



Je suis actuellement en train de développer une application dans laquelle je souhaite intégrer un menu de type slide-out (comme Facebook, Path, ...).

J'ai suivi l'excellent tuto à  cette adresse : http://nickharris.wo...avigation-code/



Cependant j'ai essayé d'adapter ce qui est expliqué dans le tuto à  mon projet, et je rencontre un point de blocage.



Le use case :
  • Un bouton est présent dans un UIViewController
  • Un clic sur ce bouton doit faire apparaitre le menu sur le côté. Ce menu est un UIViewController (SlideOutViewController)
  • Il est possible de faire réapparaitre la vue principale à  la manière de Facebook ou Path (clic ou déplacement)


Le problème :
  • Lorsque le menu est visible, la partie droite correspondant à  un UIImageView (contenant un screen de la vue principal) doit pouvoir recevoir des TapGesture et PanGesture et exécuter une méthode spécifique propre à  chaque type (Tap & Pan)
  • Le problème est que lorsque l'utilisateur réalise un Tap ou un Pan sur l'UIImageView, les selector ne sont jamais exécutés.


Voici comment sont définis mes Tap & Pan recognizer :
<br />
	UITapGestureRecognizer *_tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(test1:)];<br />
	_tapGesture.delegate = self;<br />
	UIPanGestureRecognizer *_panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(test2:)];<br />
	_panGesture.delegate = self;<br />




Voici comment est définie mon UIImageView :
<br />
	_screenShotImageView = [[UIImageView alloc] init];<br />
	[_screenShotImageView setUserInteractionEnabled:YES];<br />




Voici comment sont ajoutés ces recognizers à  l'UIImageView :
<br />
	[_screenShotImageView addGestureRecognizer:_tapGesture];<br />
	[_panGesture setMaximumNumberOfTouches:2];<br />
	[_screenShotImageView addGestureRecognizer:_panGesture];<br />




Le SlideViewController (qui contient donc mon UIImageView) est ajoutée à  la vue principale comme suit :
<br />
	[_parentView addSubview:_slideViewController.view];<br />


Cette vue apparait bien.

D'après-vous pourquoi les selector de mes Tap & Pan ajoutés à  l'UIImageView ne sont jamais exécutés?

Pour testé, j'ai ajouté un UIButton dans mon SlideViewController, devant faire apparaitre une UIAlert. Le boutton fonctionne et fait apparaitre l'alerte.



Ci-joint une image détaillant un peu l'encapsulation des vues.



D'avance merci pour vos réponses!

Réponses

  • Problème de FirstResponder ?
  • AliGatorAliGator Membre, Modérateur
    userInteractionEnabled à  NO sur l'UIImageView ?
  • 'AliGator' a écrit:


    userInteractionEnabled à  NO sur l'UIImageView ?




    Hello,



    L'user interaction est à  true:


    <br />
    [_screenShotImageView setUserInteractionEnabled:YES];<br />
    
  • 'Steph' a écrit:


    Problème de FirstResponder ?




    Je viens de tester en settant le first responder à  l'uiimageview, mais les selector des tap & pan ne sont tjrs pas exécutés.
Connectez-vous ou Inscrivez-vous pour répondre.