[iOS] Problème affichage button simulateur Xcode
Waken
Membre
Salut tout le monde,
Je viens vers vous aujourd'hui car j'ai un petit problème : le bouton de ma view ne s'affiche pas dans le simulateur s'il est en dessous d'un imageView (ou textView, etc..), voyez plutôt :
Et ma view :
C'est donc tout blanc sans le bouton... Pourtant si je met le bouton au dessus de l'imageView il apparait bien ! J'ai vérifié que mon simulateur soit réglé sur Iphone Retina 3,5inch. J'utilise Xcode 5.
Merci d'avance pour votre aide !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bonjour,
Merci de te présenter dans le forum correspondant afin qu'on en sache plus sur ton background (connaissance en dév' iOS, en POO ou en programmation tout court afin de mieux cibler le type de réponse qu'on pourrait te donner).
Bon, là , de visu... Je crois deviner que la vue du storyboard est en écran 4"... D'où le fait potentiel qu'en écran 3,5", ton bouton ne soit pas vu... AutoLayout Activé ? Si tu passes visuel du storyboard en écran 3,5" ? Tu vois toujours ton bouton ?
Une astuce : mets un couleur (jaune par exemple) à ton UIImageView. ça permettra notamment de voir la différence entre la background view du ViewController et celle-ci.
Merci pour ton aide, en effet le problème venait de la taille de la vue du storyboard, je ne connaissais pas l'existence du bouton pour passer de 4" à 3,5"...
J'en profite pour te demander comment faire pour avoir une appli compatible à la fois iPhone 4S et iPhone 5 ? (en gros)
Je vais de suite faire ma présentation !
AutoLayout semble être une bonne option (même si c'est pas forcément évident à comprendre), mais ça dépend réellement de la complexité de ton application. Tu peux faire des trucs un peu plus moches sans utiliser l'autolayout, mais cela peut permettre de te focaliser sur d'autres points avant de le maà®triser.
Ok merci ! Et comment on active le AutoLayout stp ?
J'ai fait ma présentation.
Sélectionne ton ViewController, dans File Inspector/Interface Builder Document, tu peux cocher/décocher AutoLayout (sous XCode 4 en tout cas, sur XCode5, ça a peut-être changé)
Ah oui il est activé mais bon quand je met mon bouton en bas de la vue 3,5" il se retoruve vers le milieu de la vue 4" ce qui est logique...
il n'y a pas un moyen genre comme en CSS pour positionner les objets dynamiquement ?
Il faut bien lire la doc, sinon ça vas être galère ....
https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/AutolayoutPG/Articles/Introduction.html
Quand je sélectionne mon button et que je clique sur le bouton PIN en bas du storyboard, je vois la contrainte (entre le bouton est la distance du bas) qui est réglée à 20 pour la 3,5" et quand je passe à 4" la contrainte est réglée à 108... J'en déduis donc que les contraintes changent en fonction de ma taille d'écran...
Je ne connais pas encore assez de chose pour le moment pour tout comprendre de la doc, du coup je suppose que je devrais revoir ça plus tard.
Pour figer une contrainte avec Xcode 5, lorsque Autolayout est activé, tu as 4 petits boutons à droite de ta vue (en bas).
Si tu cliques sur le second bouton, tu as une fenêtre qui s'affiche et qui te permet de choisir la ou les contraintes que tu souhaites créer.
Merci pour ta réponse mais c'est ce que je disais dans mon message précédent, dans la case du bas je met comme contrainte 20 en 3,5" et quand je passe en 4" ma contrainte a changée toute seule et devient 108...
Bizarre ton truc. Une contrainte n'est pas liée à une taille écran... sinon à quoi çà servirait ?
Que veut tu dire par 'quand je passe en 4"', tu changes bien de simulateur, et tu fais un "run" ?
Les images parlent mieux
Voici la différence quand je clique juste sur le bouton en bas (le plus à gauche) pour changer de vue mon storyboard..
C'est bien ce que je pensais... Là tu est dans Interface Builder (IB), ce dont je te parle c'est au runtime.
Donc, tu génère tes contraintes dans IB (avec un visuel 4" par exemple) et tu mets par exemple 20 pt de contrainte entre ton bouton et le bas de la vue parente, et ensuite, pour voir le résultat, tu lances l'exécution sur le simulateur en choisissant l'écran sur le simulateur (set the active scheme). Et là , çà devrait fonctionner.
Edit : d'ailleurs, tu n'as pas cliqué pour figer ta contrainte là . Il faut cliquer sur les zones rouge pour qu'elles apparaissent plus épaisses et ensuite cliquer sur "add constraint"
Non, je crois tout simplement que la contrainte n'a pas été ajoutée (le trait rouge est fin)
Dans les vidéos de la wwdc 2013, regarde celle intitulée : Taking Control of Auto Layout in Xcode 5 (session 406). En à peine une heure tu apprendras plein de choses.
Merci Alf1996 en effet je n'avais pas cliqué sur le trait rouge !
Merci beaucoup tout le monde, tout marche maintenant !