2010-08-20 4 views
5

Je suis un développeur expérimenté, mais relativement nouveau sur iOS.L'application iPad pour paysage uniquement ne répond pas aux touches près du bas de l'écran

J'ai des problèmes avec une application iPad, où mes vues ne répondent pas aux touches dans le tiers inférieur de l'écran. Les touches sur les autres boutons fonctionnent bien, donc je sais que mes vues sont connectées correctement lorsqu'elles sont chargées (je les ai créées dans IB). J'ai le même comportement sur le simulateur et sur l'appareil.

Il s'agit d'une application orientée paysage uniquement et je charge des vues à l'aide de [NSBundle LoadNibNamed:]. Ce fut la seule partie non négligeable de l'application, et je pense que je l'ai sauté à travers tous les cerceaux appropriés:

  • Ajouté Interface initiale Orientation ligne à mon .plist
  • Designed mon point de vue dans l'orientation du paysage en IB
  • Ajouté shouldAutorotateToInterfaceOrientation à mon avis de niveau supérieur qui ne renvoient que OUI pour les orientations du paysage

l'orientation du paysage ne peut pas être lié, mais je pensais que je devrais mentionner, car il était la seule chose que je trouve une peu perdu à construire, un Et je vois dans les forums que d'autres personnes ont aussi trouvé cette problématique.

Quelqu'un a-t-il des idées?

Merci.

+1

Votre vue (contenant) est-elle assez haute? Ce serait typique pour les vues trop petites. Définissez la couleur de fond à quelque chose d'évident et vérifiez si votre vue est réellement là où vous l'attendez. - Et assurez-vous qu'il n'est pas couvert par autre chose. – Eiko

+0

La vue et la vue contenant sont la taille complète de l'écran. La vue (contenue) contient également une image qui est en taille réelle, elle s'affiche correctement, tout en bas. Tous les boutons (haut et bas sur l'écran) sont devant l'image. – AndrewCr

Répondre

1

Il s'avère que les limites de ma vue ont été définies en plein écran, mais le cadre ne l'était pas. En définissant explicitement le cadre, j'ai réussi à le faire fonctionner.

2

Plus que probablement, vos masques de réinitialisation automatique ne sont pas définis correctement. Cela signifie que les limites de la vue ne changent pas pour correspondre à la fenêtre. Les touches ne sont détectées que dans les limites de la super vue d'une vue, donc si vous avez un bouton qui se trouve à l'extérieur des limites de sa vue, il n'y aura aucune touche.

Pour un test rapide, essayez de définir la couleur d'arrière-plan de votre vue et de voir si la vue s'étend correctement au bas de l'écran.

+0

La vue (et sa vue contenant) sont toutes les deux la pleine taille de l'écran. La vue contient également une image en taille réelle et l'image entière s'affiche correctement. En outre, je peux voir les boutons, donc cela ne signifie-t-il pas qu'ils sont dans les limites de la vue? – AndrewCr

+3

Non, ce n'est pas le cas. La valeur par défaut de la propriété UIView clipsToBounds est définie sur NO, ce qui permet à toute sous-vue de s'afficher elle-même en dehors des limites de la vue. C'est pourquoi le test de couleur d'arrière-plan est utile: il vous permet de voir visuellement où les limites d'une vue sont réellement à l'écran. –

1

Si vos applications, sur l'écran de votre application, ne répondent pas au toucher, changez simplement l'orientation. Je l'ai gardé en mode paysage la plupart du temps, ils ont arrêté de répondre, quand j'ai fait pivoter l'ipad, ils ont commencé à répondre tout de suite.

Questions connexes