2010-08-20 9 views
5

Ich bin ein erfahrener Entwickler, aber relativ neu für iOS.iPad Landschaft-nur App reagiert nicht auf Berührungen in der Nähe des unteren Rand des Bildschirms

Ich habe Probleme mit einer iPad App, wo meine Ansichten nicht auf Tastendrücke im unteren Drittel des Bildschirms reagieren. Touches auf anderen Tasten funktionieren gut, so dass ich weiß, dass meine Ansichten richtig verbunden sind, wenn sie geladen sind (ich habe sie in IB erstellt.) Ich bekomme das gleiche Verhalten sowohl auf dem Simulator als auch auf dem Gerät.

Dies ist eine Nur-Landschafts-App, und ich laden Ansichten mit [NSBundle LoadNibNamed:]. Dies war der einzige nicht-triviale Teil der App, und ich glaube, ich habe alle entsprechenden Reifen sprang durch:

  • hinzugefügt Initial-Schnittstelle Orientierung Linie meiner .plist
  • Entwickelt meine Ansichten im Querformat in IB
  • Added ShouldAutorotateToInterfaceOrientation meiner Top-Level-Ansicht, die nur JA Rückkehr für Querformat

die Landschaft Orientierung kann nicht verwandt werden, aber ich dachte, dass ich es erwähnen sollte, da es das einzige war, fand ich ein wenig wackelig zu bauen, a Und ich sehe von den Brettern, dass andere Leute dieses Problem auch gefunden haben.

Hat jemand irgendwelche Ideen?

Danke.

+1

Ist Ihre (containing) Ansicht hoch genug? Dies wäre typisch für zu kleine Ansichten. Stellen Sie die Hintergrundfarbe auf etwas Offensichtliches ein und prüfen Sie, ob Ihre Ansicht tatsächlich dort ist, wo Sie sie erwarten. - Und stellen Sie sicher, dass es von nichts anderem abgedeckt ist. – Eiko

+0

Die Ansicht und die umschließende Ansicht haben die volle Größe des Bildschirms. Die (enthaltene) Ansicht enthält auch ein Bild, das die volle Größe hat, es wird richtig angezeigt, bis ganz nach unten. Alle Schaltflächen (hoch und niedrig auf dem Bildschirm) befinden sich vor dem Bild. – AndrewCr

Antwort

1

Es stellt sich heraus, dass die Grenzen meiner Ansicht auf den Vollbildmodus eingestellt waren, der Rahmen jedoch nicht. Indem ich den Rahmen explizit gesetzt habe, konnte ich das zum Laufen bringen.

2

Wahrscheinlich sind Ihre Autorisierungsmasken nicht korrekt eingestellt. Dies bedeutet, dass die Grenzen der Ansicht nicht so geändert werden, dass sie dem Fenster entsprechen. Berührungen werden nur innerhalb der Grenzen der Superansicht einer Ansicht erkannt. Wenn Sie also eine Schaltfläche haben, die außerhalb der Grenzen der Superansicht liegt, erhält sie keine Berührungen.

Für einen schnellen Test versuchen Sie, die Hintergrundfarbe Ihrer Ansicht einzustellen und zu prüfen, ob die Ansicht richtig bis zum unteren Bildschirmrand reicht.

+0

Die Ansicht (und die zugehörige Ansicht) haben beide die volle Größe des Bildschirms. Die Ansicht enthält außerdem ein Bild in voller Größe, und das gesamte Bild wird ordnungsgemäß angezeigt. Außerdem kann ich die Knöpfe sehen, also bedeutet das nicht, dass sie innerhalb der Grenzen der Ansicht sind? – AndrewCr

+3

Nein, tut es nicht. Der Standardwert für die UIView-Eigenschaft "clipsToBounds" ist auf "NO" festgelegt, sodass jede Unteransicht außerhalb der Grenzen der Ansicht angezeigt werden kann. Daher ist der Hintergrundfarbentest nützlich: Er ermöglicht es Ihnen, visuell zu sehen, wo die Grenzen einer Ansicht tatsächlich auf dem Bildschirm sind. –

1

Wenn Ihre Apps auf Ihrem App-Bildschirm nicht auf Berührung reagieren, ändern Sie einfach die Ausrichtung. Ich habe die meiste Zeit im Querformat gehalten, sie haben nicht mehr reagiert, als ich das iPad gedreht habe, haben sie sofort reagiert.

Verwandte Themen