Xcode 5 et ios7
Booleanne
Membre
Bonjour à tous,
je viens de passer mon appli de xcode 4.6 à xcode 5. Après correction des petits soucis de xib, mon appli rame tellement que ce n'est carrément pas viable. Il semblerait que c'est surtout les touchs qu'il a du mal à détecter, mais je ne suis pas trop sûre. Est-ce que quelqu'un d'autre a des soucis de réactivité ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Aucun problème pour moi. Xcode 5 et le dernier SDK iOS 7 fonctionnent très bien.
Bonjour,
Pour ma part, j'ai aucun souci avec xcode 5 / iOS 7, mise à part :
- l'adaptation de certains .XIB car certains objets de base n'ont plus le même encombrement,
- l'usage des styles des UITableView
- le comportement de la StatusBar
- ...
Ton souci ne serait-il pas sur tes re-compilations xcode 5 pour les iPhone 4 avec iOS 7 ?
Merci pour vos réponses respectives.
Instruments : je ne vois rien. Au contraire, j'ai rectifié quelques soucis de mémoire qui restaient, c'est mieux. Apparemment pas de problèmes de ce côté.
C'est une appli très gourmande en dessin, j'ai aussi optimisé la rapidité, suite à la lecture d'un article, en privilégiant le travail sur les layers au lieu des CGcontext, ce qui avait l'air de payer dans mes tests juste avant la transition, est-ce une piste ?
Ne serait-ce qu'au démarrage, il met un temps fou à me donner la main sur les boutons.
Je vais quand-même voir si je n'ai pas fait une autre bêtise, mais je ne crois pas.
Bonjour,
Tu testes bien directement sur un iDevice ? As-tu monitoré ton appli avec Time Profiler ? Cela devrait te permettre de localiser les parties de ton code qui consomment le plus de CPU.
Merci Kuberman, oui, je teste bien sur device réel (Ipad retina). Instrument ne me donne pas trop de pistes pour le moment.
EDIT : j'ai du faire une boulette parce que j'ai un process qui prend toute la CPU... Je cherche... et grand honte sur moi ... je boucle sur le redraw en continu. En fait, j'aime mieux ça !
En fait, il n'y a pas que ça, c'est en essayant de corriger que j'ai fait des bourdes.
Dites moi si je me trompe, mais avant IOS 7, un uipangesture détecté ne déclenchait pas un touchesBegan.
Maintenant c'est le cas, on passe dans le touchesBegan avant que le move soit pris en compte, et dans mon cas, ça pose problème.
Finalement, c'était une question de delayed begin et delayed end, qui a du changer avec cette version. Je pense que c'est résolu.
Non, je confirme,
encore des soucis de détection de touch dans certains cas. Etrange. Ma CPU est OK.
C'est dans les UITableViewCell personnalisées.
J'ai du modifier des petits détails : rendre mes cell sélectionnables et jouer sur le firstResponder. Ca a l'air d'être bon.
EDIT : ce n'est pas encore ça. J'ai retesté sous IOS 6 et pas de soucis, ça marche :
J'ai un UITableViewCell customisée, dans laquelle j'ai un UITextField.
Sous IOS 7, le touch sur le UITextField ne déclenche pas le begin editing (il est bien enabled).
Merci d'avance.
Bon, on dirait que je suis toute seule à rencontrer ce problème... 3 jours que je planche, et pas de solution au final.
Est-ce que ça, ça peut être une piste ?
http://www.curiousfind.com/blog/646
D'autres précisions :
J'ai dans des UITableVieCell customisées : UIButton, UISwith, UISegmentedController, et UITextField : aucun ne répond à mes touch : pourtant ça marche impeccable avec les anciens IOS.
Bonjour Booleanne,
J'ai des UITableViewCell avec 2 UITextFields et 4 UIButtons et je n'ai pas détecté de problème particulier avec Xcode 5 et iOS 7 mais je n'ai testé qu'avec le simulateur. Tous les contrôles répondent correctement.
Merci Eric P. Cela confirme que je dois oublier quelque chose. Dans mon cas, cela ne marche ni sur le simulateur, ni sur device.
Comment tu crées tes UITableViewCell, par un addSubview sur ta cell ou par l'autre méthode, comme celle par exemple décrite ici :
http://www.appcoda.com/customize-table-view-cells-for-uitableview/
Merci d'avance.
Génial, je viens de trouver.
La contentView de la cell, sur IOS 7, se superpose au dessus de la custom cell. (Merci Apple pour ces 3 jours perdus )
Si je la mets hidden, ça fonctionne.
C'est comme l'exemple que tu donnes :
- fichier xib de définition de ma custom cell,
- classe pour cette custom cell
mais avec quelques différences dans le cellForRowAtIndexPath.
Réponse après la bataille...
Ben du coup, c'est bizarre, je fais comme ça aussi. Mais, bon, puisque maintenant ça marche... je ne cherche pas à comprendre.
Depuis toujours il faut mettre ton contenu dans la contentView, et pas directement dans la cell (voir le Table View Programming Guide pour plus de détails), donc si tu mets ton contenu directement dans la cell et que tu masques la contentView (hidden=YES) c'est pas l'ordre logique des choses (et du coup par exemple si tu rajoutes des accessoryViews à ta cell, ou veut ajouter le swipeToDelete ou pouvoir passer ta TableView en mode édition, si tu as mis ton contenu perso dans la cell et pas sa contentView, tu vas avoir des soucis, l'accessoryView ou les boutons Delete & co qd tu swipe et tout ça ne vont pas décaler ton contenu comme prévu mais vont s'y superposer...)
Je ne sais pas trop non plus, je ne me suis jamais occupée de la contentView.
J'ai mis en couleur ma contentView : Sous IOS 6, on ne la voit pas.
Sous IOS 7.0, elle recouvre ma cell.
Mes tables ne sont pas éditables, je n'ai pas besoin des accessoryViews.
C'est normal, sous iOS6 la backgroundColor de la contentView était remplacée au runtime par la backgroundColor de la cell (ça a toujours été le boxon ce mix des backgroundColors dans les TableViewCells... jusqu'à ce que sous iOS7 il reviennent à un truc cohérent justement)
Oui, j'ai certainement pas mal de bol quand je vois le nombre de carences que j'ai, d'avoir quelque chose qui fonctionne bien, et sans bugs. Mais je ne lésine pas sur les tests, ça compense !
Oui, mais si je la recolorise au cellForRow, je devrais quand-même la voir sous IOS 6, non.
Enfin, le "hidden", c'était juste pour tester. Là , je vais juste passer mes views au dessus.
Merci.
N'empêche, juste pour comprendre, je viens de rajouter le code suivant dans le "willDisplayCell"
Et, en IOS 6, mon contenu est au dessus, alors qu'en IOS 7, la contentView se place au dessus, recouvrant mon contenu. Il n'y a pas qu'une question de couleur. Il y a bien quelque chose qui a du changer dans la logique des UITableViewCell.
ben apparemment y'a bien un blem :
http://stackoverflow.com/questions/18895698/custom-uitableviewcell-with-wrong-backgroundcolor
Merci, xyloweb, je me sens moins seule
Au risque de me faire bâcher...
Je me bats avec le Simulateur depuis un moment, je patauge serais-je le seul ? iOs 7 et Xcode 5
Globalement je fais les exercices du livre "Programmation iOS" de BiG nerf ranch et j'en suis au chapitre 15/16. Ce livre comporte des erreurs même dans le code exemple, donc pour essayer de trouver (suis-je têtu ?) j'utilise le même exemple disponible chez Pearson et ceux disponibles sur le site US...
J'ai beau essayer de solliciter le même simulateur dans les mêmes conditions, les résultats sont carrément très fantaisistes.
Parfois l'iPhone a une échelle qui dépasse l'écran ? Parfois l'iPad, avec ou sans bouton Home (avec Xcode4 jamais) ?
J'ai beau sélectionner l'iOs Simulateur on a l'impression qu'il s'en fout...
Est-ce aussi le fait de code créé avec Xcode4 ? Est-ce le fait qu'il y ait plusieurs projets d'ouvert ?
Faut pas avoir peur... sinon, je ne poserai pas beaucoup de questions. On est là pour apprendre.
Honnêtement, pour ma part, pas autant de problèmes que toi.
Quelques soucis dont celui cité plus haut, et des décalages dus à la taille des vues qui a changé. Je suis dans le cas d'une app créée avec XCode 4, passée à Xcode 5.
Mais je n'ai jamais plusieurs projets ouverts en même temps... je me perdrais et risquerais de faire (encore plus) de bêtises
Il ne s'en fiche pas, mais il redémarre ton appli. Regarde dans Xcode, en haut à gauche à côté du bouton Run, quelle est la cible sélectionnée (iPhone, iPad, retina, 3,5"/4"). Forcément, si ce n'est pas la même que celle choisie dans le simu, elle va changer à nouveau.
Merci pour cette réponse a laquelle j'ai mis un peut de temps pour répondre (un bug coinçant), je n'avais jamais trop fait attention a ce détail, tout de même curieux comme démarche vu que c'est Xcode qui lance le simulateur, mais bon...
En tous cas merci, comme quoi...
Je suis entièrement d'accord avec toi.
Mais je trouve qu'il y a plus curieux encore, comme le double réglage de la position courante simulée à la fois dans Xcode et dans le simu.
En fait je ne suis pas sûr d'avoir compris par quel autre moyen tu essayais de passer avant de ton côté ? (Parce que bon moi j'ai toujours choisi le Simulateur sur lequel je voulais tester mon code en le sélectionnant dans Xcode, à côté de ce bouton Run quoi, donc je n'ai jamais vu d'autres endroits où régler ça)
Tu entends quoi par ça ? J'ai pas trop compris "le réglage de la position courante simulée" ?
Dans le simulateur, on peut simuler la gélocalisation courante.
Dans Xcode aussi, au bas de la fenêtre, près des outils du débogueur. Je ne sais jamais lequel des deux (Xcode ou simu?) l'emporte.