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
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 ?
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
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.
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 ?
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)
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
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 ?
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:
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 {}".
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" ?
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 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 ?
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 bon bien sur quand on est malin on créer une machine virtuel on mets MAC OS X dessus et c'est bon
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.
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
Tutoriels sur GameplayKit, SceneKit (iOS 3D game engine), ARKit (iOS réalité augmentée) en cours d'écriture
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...
× 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.