Petit souci avec une transition

Babyfoot34Babyfoot34 Membre
15:21 modifié dans API AppKit #1
Bonjour a tous

Je ne comprends pas les messages du debugeur. J'ai pourtant suivi les indications de beaucoup d'entre vous (bon c'est vrai que j'ai pas tout compris) Mon but est de faire une transition entre ma vue principale et ma vue vuePdf. L'iphone d'origine fait une transition qui part sur la droite mais j'aimerai que ma transition parte sur la gauche.

Réponses

  • laudemalaudema Membre
    15:21 modifié #2
    Bonjour,

    1)'CALayer may not respond to "performTransition:transition:direction:duration:'' Veut dire que l'objet self.view.layer ne dispose pas de cette méthode. Comme je ne connais que appKit et pas l'environnement iPhone je ne saurais te dire pourquoi. Probablement self.view.layer est un CALayer et ce n'est pas CALayer qui a cette fonction déjà  définie ?

    2)'expected "struct UIView" when passing argument 1 of "addSubview:" from distinct Objective-C type' c'est l'habituel "when passing argument x of XXXX from distinct Objective-C type" qu'on retrouve quand on passe un objet d'un certain type alors qu'un autre type était attendu (un tableau pour un dictionnaire une NSAttributedString pour une NSString and so on). Ici il addSubview: attend une UIView et tu lui envoies un "vuePdf" qui n'est probablement pas un "vueUIView" ?

    Donc dans le premier tu appelles une fonction qui n'est pas définie pour cet objet et dans le second tu passes à  la fonction un objet en paramètre qui n'est pas du type attendu pour ce paramètre.
  • Babyfoot34Babyfoot34 Membre
    15:21 modifié #3
    Merci pour ta reponse

    En faite je suis entrain de comprendre que les Layer sont un peu comme les calques dans photoshop ou gimp. Et du coup je ne suis pas certain qu'ils soient bien approprier pour des vues (je parle de CATransition). Apparement tous les exemples que j'ai trouver sur internet utilise cette methode pour animer 2 photos dans une meme vue.

    Je veux simplement que l'utilisateur visualise un fichier pdf, j'ai donc creer une classe VuePdf avec son xib et j'ai placer un UIwebView pour l'afficher. Jusque la pas de probleme. Lorsque l'utilisateur clique sur le bouton <Voir Pdf> ma vue est glissee (poussee) depuis le cote droit. Hors je souhaite quelle soit glissee depuis le cote gauche. Apparement pour pouvoir realiser cette transition dans ce sens je dois passer par CATransition.

    Peut une autre solution plus simple ?
  • AliGatorAliGator Membre, Modérateur
    15:21 modifié #4
    Si si pour tout ce qui est CATransition et CAAnimation, CALayer est une bonne idée je pense.
    Mais en fait c'est vrai que le warning que tu as n'est pas forcément simple à  interpréter.

    En fait, comme le dit laudema, le warning veut dire que la classe CALayer ne propose pas de méthode performTransition:transition:direction:duration. Je ne connais pas la doc par coeur (contrairement à  ce que certains croient ^^) donc faut commencer par vérifier en effet que cette méthode existe dans la classe CALayer et que tu n'as pas fait une faute de frappe en la recopiant ou quoi. Bon ça le warning devrait t'avoir mis sur la piste pour ce cas là .

    Par contre il peut y avoir une autre raison au warning, c'est que tu n'as pas inclus le header pour CALayer. Pour cela, il faut faire #import <QuartzCore/QuartzCore.h> (c'est indiqué en haut de la doc de CALayer le header dans lequel la classe est définie). Du coup CALayer répond bien à  la méthode que tu tentes d'appeler, mais comme tu n'avais pas inclus le header, il n'avais pas la liste des méthodes auxquelles CALayer répond, d'où le warning vu qu'il ne pouvais pas savoir :P

    Autre chose à  vérifier, CALayer faisant partie du framework QuartzCore, il faut penser (mais ça ça doit être indiqué dans le tutoriel normalement, enfin j'espère) à  rajouter le framework QuartzCore.framework à  ton projet si ce n'est pas déjà  fait.
Connectez-vous ou Inscrivez-vous pour répondre.