Partage
  • Partager sur Facebook
  • Partager sur Twitter

MOOC Swift iOS

    2 mai 2017 à 14:03:55

    Geda a écrit:

    Regarde mon lien. C'est ce qu'il fait


    C'est ce que j'ai utilisé mais le code s'exécute lorsque la "région" est modifiée. Du coup lorsqu'il s'agit d'un zoom, le code s'execute

    Hors il faut que j'arrives à ne l'exécuter que lorsqu'il s'agit d'un déplacement manuel quelque soit la direction

    • Partager sur Facebook
    • Partager sur Twitter
    Vincent M
      2 mai 2017 à 16:43:44

      Ce que tu peux faire, c'est stocker la position du centre et quand ta region change, tu vérifies si le centre est le même que celui stocker. Si c'est le même, tu fais quelque chose, sinon, tu ne fais rien
      • Partager sur Facebook
      • Partager sur Twitter
        2 mai 2017 à 16:48:23

        Merci je vais essayer

        j'ai essayé avec :

        if (recognizer is UISwipeGestureRecognizer) {
           return true
        }else{
           return false
        }

        mais le problème c'est que recopier est un UIGestureReconizer et du coup ne prend pas la "forme" du Gesture détecté donc ça ne fonctionne pas :(

        Je vais essayer avec ta méthode 

        Merci

        • Partager sur Facebook
        • Partager sur Twitter
        Vincent M
          4 mai 2017 à 13:57:38

          Bon ça ne fonctionne pas car le zoom par double clic modifie le centre de la région... du coup retour au point de départ :'(
          • Partager sur Facebook
          • Partager sur Twitter
          Vincent M
            4 mai 2017 à 19:32:39

            Je pense que ça modifie le centre parce que tu double clic pas exactement au meme endroit. C'est possible de récupérer le niveau de zoom mais le problème c'est que si tu zoomes à coté j'imagine que tu souhaites quand même exécuter ton code. 

            Ton bouton qui sert à recentrer la map, quand tu cliques dessus, la camera bouge ou pas du tout ?

            • Partager sur Facebook
            • Partager sur Twitter
              5 mai 2017 à 20:03:52

              oui c'est ça mais dur dur de viser juste ^^

              non si je zoome à coté, je ne veux pas que le code soit exécuté (idem lorsque l'écran pivote ou que l'on change le haut en effectuant une rotation avec 2 doigts). Il ne doit s'exécuter que lorsque l'on glisse à un doigt pour décaler la "région"

              lorsque je clique sur le bouton, je réactive l'option "centre" donc oui ça bouge

              En tout cas, merci de ton aide

              • Partager sur Facebook
              • Partager sur Twitter
              Vincent M
                6 mai 2017 à 17:09:52

                Je sais plus pourquoi j'avais demandé si ça bougeait ou pas. Tant pis. Mais du coup, en récupérant le niveau de zoom tu peux savoir s'il a changé ou non. Et s'il a changé, tu ne fais rien.

                • Partager sur Facebook
                • Partager sur Twitter
                  6 mai 2017 à 17:46:15

                  Merci je vais chercher comment le récupérer

                  Merci

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Vincent M
                    9 mai 2017 à 9:53:27

                    Bonjour,

                    bon j'ai bien trouvé pour récupérer l'altitude de la camera (mapView.camera.altitude)

                    mais je galère encore... (sinon cent serait pas drôle...)

                    en fait le problème c'est que je n'arrives pas à recupérer l'altitude finale (c'est à dire celle qui est demandée lors zoom)... du coup lorsque je teste voir si l'ancienne altitude est égale a la nouvelle, ben j'ai forcement égalité

                    j'ai essayé de mettre le code dans func mapView(_ mapView: MKMapView, regionWillChangeAnimated animated: Bool)

                    et dans func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) mais le résultat est le même... une idée ?


                    merci d'avance

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Vincent M
                      9 mai 2017 à 10:18:47

                      A mon avis, si tu le met dans DidChange, ça fonctionne. DidChange est appelé lorsque la map a fini de bouger. Ta position dans didChange est la nouvelle, pas l'ancienne.

                      Moi je vois un autre problème : Le terrain n'étant pas plat, camera.altitude va changer même si tu ne zoomes pas. Utilise plutôt ça : 

                      let zoomWidth = Int(mapView.visibleMapRect.size.width)
                      





                      • Partager sur Facebook
                      • Partager sur Twitter
                        9 mai 2017 à 10:21:33

                        Merci j'essaye de suite :)

                        Super ça fonctionne nickel :D un énorme merci pour ton aide et le temps que tu m'as consacré :D

                        -
                        Edité par VincentMourareau 9 mai 2017 à 14:19:47

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Vincent M
                          10 mai 2017 à 15:01:35

                          Bonjour à tous, 

                          je reviens vers vous car je n'arrive pas à trouver de réponse à ma nouvelle interrogation sur le net :

                          Comment faut-il faire pour pouvoir partager un fichier enregistré dans mon application avec iTunes ? (en gros mon appli n'apparait pas dans la liste des appli partageant de fichiers) 

                          Cela est-il du au fait que je sois en début sur mon iphone ?

                          une nouvelle fois merci de votre aide

                          Pour ceux que ça intéresse, voici la réponse :

                          dans Custom iOS Target Properties, il faut ajouter la clé "Application supports iTunes file sharing" et mettre la valeur YES

                          -
                          Edité par VincentMourareau 17 mai 2017 à 9:03:54

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Vincent M
                            16 mai 2017 à 13:53:34

                            Bonjour, dans la partie du cours concernant cocoapods maintenant que l'on ne peut plus installer alcatraz sur xcode8 est-ce qu'il existe une alternative ?

                            Merci

                            • Partager sur Facebook
                            • Partager sur Twitter
                              17 mai 2017 à 18:28:12

                              Bonjour, je ne vois pas le rapport entre cocoapods et alcatraz
                              • Partager sur Facebook
                              • Partager sur Twitter
                                18 mai 2017 à 11:30:18

                                Le cours se sert d'alcatraz pour installer cocoapods, comment faire maintenant ?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  19 mai 2017 à 10:08:59

                                  Bizarre comme méthode.

                                  sudo gem install cocoapods

                                  https://cocoapods.org

                                  -
                                  Edité par Geda 19 mai 2017 à 10:09:12

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    27 mai 2017 à 11:26:34

                                    Bonjour à tous je reviens vers vous pour solliciter (encore) votre aide

                                    Quelqu'un connait-il un tuto SIMPLE sur l'utilisation de CoreData ?

                                    j'ai bien réussi à créer le schéma et les classes correspondantes mais concernât leur utilisation je n'y comprends simplement rien o_O

                                    Merci à tous

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Vincent M
                                      29 mai 2017 à 20:25:15

                                      Bonjour à tous,

                                      J'ai une question concernant l'activité 1 du cours. J'ai un UIPanGestureRecognizer sur un stepper. Je souhaite récupérer la position de mon stepper avant le UIGestureRecognizer via l'attribut state, effectuer le mouvement puis procéder à une remise à la position initiale via une petite animation. Le problème se situe lors de la récupération de la position initiale. En effet, dans ma fonction glisserDeposerStepper(sender : UIPanGestureRecognizer), je procède en trois étapes:


                                      1/ Récupération de la position:

                                      if sender.state == .began { 

                                          let positionInitiale : CGPoint!

                                          positionInitiale = sender.location(in: self.view)

                                      }

                                       2/ Mouvement du GestureRecognizer:

                                      if sender.state == .changed { 

                                          coordonneesDuToucher = sender.location(in: self.view)

                                          step.center = coordonneesDuToucher // step étant la view stepper à laquelle est associée le Gesture Recognizer

                                      }

                                      3/ Replacement du stepper à sa position initiale

                                      else if sender.state == .ended {

                                                  UIView.animate(withDuration: 0.5, delay: 0.3, options: [],

                                                                 animations: {

                                                              step.center = positionInitiale

                                                  },

                                                                 completion: nil

                                                  )

                                      }

                                      Le problème est le suivant: Dans l'animation, positionInitiale n'est pas reconnu car il est déclaré dans une autre condition if. Or si j'essaye de le déclarer dans l'en-tête de la fonction, sender.location va renvoyer la position du toucher à tous les instants, pas seulement au démarrage. Du coup, je suis bloqué... J'ai essayé de créer une fonction qui retournerait la position initiale séparément, ou même une classe "positionInitiale" mais j'ai toujours le même problème: positionInitiale doit être déclaré dans son "if sender.state == .began {}".

                                      Pouvez vous m'aider ?

                                      Merci d'avance,

                                      Maxime

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        29 mai 2017 à 23:28:12

                                        Salut.

                                        Ta variable positionInitiale doit être une variable membre de ta classe. Ça devrait résoudre ton problème tout seul.

                                        class A {
                                          let positionInitiale: CGFloat = nil
                                        
                                          func taFunc(state: JeSaisPasQuoi) {
                                             if sender.state == .began {
                                               positionInitiale = sender.location
                                            }
                                          }
                                        }
                                        

                                        -
                                        Edité par Geda 29 mai 2017 à 23:30:51

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          4 juin 2017 à 17:46:15

                                          Bonjour Geda et merci pour ta réponse. Je pense comprendre le principe de la solution que tu me donnes, mais il y a quelques points à éclaircir. Dois-je créer une nouvelle classe ou dois-jet simplement intégrer positionInitiale à une classe préexistante ? Si je dois créer une nouvelle classe, dois-je forcément faire cela dans un nouveau script "classeA.swift" ou puis intégrer la déclaration de la classe dans la fonction "glisserDeposerSurSender" ?

                                          Merci pour ton aide!
                                          Bonne journée,

                                          Maxime

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            13 juin 2017 à 9:46:15

                                            Tout d'abord si tu fais du Swift on ne parle pas de script.

                                            Ce que j'ai appellé ´A ´ correspond simplement à la classe ou tu as mis ta fonction ´glisserDeposerStepper ´

                                            Inutile de créer une nouvelle classe. Tu devrais te renseigner sur les scopes et les variables membres

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              23 juin 2017 à 17:04:44

                                              Bonjour à tous.

                                              J'ai une simple question, j'aimerais savoir, est ce que dans Xcode il y a Swift ? parce que sur mon app store je peux télécharger Xcode mais swift est introuvable.

                                              je voir que Xcode peut être utilisé sur Mac OS mais aussi sur Ubuntu ? donc on a quand même le choix de coder soit sur mac soit sur linux, si je me trompe ? et au niveau du framework comment ça se passe ?

                                              merci de m’éclaircir :) 

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                23 juin 2017 à 19:11:04

                                                Bonjour,

                                                Oui, dans Xcode il y a Swift. Inutile de télécharger quoi que ce soit d'autres qu'XCode donc.

                                                Ce n'est pas Xcode qui peut etre utilisé sur Ubuntu mais Swift. Si tu veux faire du dev ios il te faut un mac

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  23 juin 2017 à 19:53:48

                                                  merci geda pour cette infos, mais est ce que les cours sur justement apprenez à coder avec swift et xcode sont t'il pas dépassé ? parce que maintenant on à qu'une seul interface ?

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    23 juin 2017 à 20:54:00

                                                    Je n'ai pas compris la seconde question.

                                                    Swift c'est le langage. Xcode c'est l'IDE. Les deux ne sont pas incompatibles, au contraire. Ceci dit, je n'ai pas fait le cours que tu mentionnes.

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      23 juin 2017 à 22:55:00

                                                      je me disais juste si les cours étaient à jours, si Xcode intègre swift, plus besoin de télécharger swift à part sur le coté.

                                                      enfin c'est pas grave :) merci à toi de m'avoir éclaircir mais très clairement Apple à bien propriété sont langage de programmation, il faut se mettre à mac :D bon bien sur quand on est malin on créer une machine virtuel on mets MAC OS X dessus et c'est bon ;)

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        23 juin 2017 à 23:17:24

                                                        Il n'y a jamais eu besoin de télécharger Swift en fait. Et les cours n'ont pas l'air à jour. Le langage est Open Source. Ce qui ne l'est pas ce sont les frameworks style UIKit. Je ne partage pas ton point de vue sur la VM.

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          25 juin 2017 à 18:48:36

                                                          Salut !

                                                          J'ai recu beaucoup de retour de programmeur qui ont essaye de mettre mac sur VM pour utiliser Xcode et la plupart ont toujours trouvé ca mauvais, je ne l'ai donc jamais teste personnellement mais je ne le conseil a personne !

                                                          Pour ce qui est de "telecharger swift" il y'a deux facon

                                                          - Soit tu as un Mac et tu telecharge Xcode (solution tres simple)

                                                          - Soit tu es sous Ubuntu et tu telecharge Swift simplement sur le site du swift (solution simple quand meme mais un peu moins que simple)

                                                          Pour la derniere solution, tu n'aura donc pas d'IDE (ou du moins pas Xcode) et qques etapes supplementaires seront a faire pour compiler du swift

                                                          Par contre si tu veux programmer des applications iPhone, prend un mac, tout les frameworks sont directement dans Xcode et c'est tres (tres) complique de faire sans

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          Tutoriels sur GameplayKitSceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
                                                            25 juin 2017 à 19:23:02

                                                            ok merci à tous :) je voir que pour bien réussir il faut un mac :D
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              30 juin 2017 à 22:34:25

                                                              Re Geda,

                                                              Après avoir suivi tes conseils, j'ai repris les cours sur les bases du Swift et effectué le nouveau cours pour approfondir le Swift, j'ai pu comprendre ta solution et corriger mon erreur. Ce qui me manquait était en fait  la création de la variable sous forme d'Optionnel et la déballer proprement afin d'éviter les erreurs, choses que je ne savais pas faire...

                                                              En tous cas merci pour ton aide! A bientôt!

                                                              Maxime

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              MOOC Swift iOS

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown