Ich behebe gerade ein Problem in einer alten App (in den Tagen von iOS 5), bei der Schaltflächenberührungsereignisse am unteren Bildschirmrand ignoriert werden. Ich kann dieses Problem neu erstellen, indem ich ein neues Projekt erstelle, das Storyboard (und den Verweis im Info-Plist) lösche und Folgendes in didFinishLaunchingWithOptions mache (ich weiß, dass dies nicht die richtige Vorgehensweise ist, aber diese App ist m an arbeiten hat eine ähnliche Einstellung)
%Vor%Sobald ich diese App ausgeführt habe, funktioniert der "Hey" -Button nur durch Drücken der oberen Hälfte. Ich habe das Gefühl, dass es mit der Statusleiste von iOS 7 zusammenhängt, und wie die Benutzeroberfläche jetzt darunter liegt und nicht darunter. Ich habe versucht, die Grenzen des Fensters anzupassen, aber das hilft nicht. Ich habe alle möglichen Dinge ausprobiert, um diese Schaltfläche zu aktivieren, aber das einzige, was funktioniert, ist das Verstecken der Statusleiste.
Jeder hat Hinweise, wie man diesen Knopf in dieser Situation funktioniert?
Ich denke nicht, dass die Ereignisse ignoriert werden. Ich denke, dass die Schaltfläche "Hervorhebung" nicht für Schaltflächen in iOS7 am unteren Rand des Bildschirms angezeigt wird.
Fügen Sie dieses Beispiel in Ihrem Beispiel zu didFinishWithLaunching in AppDelegate.m
hinzu %Vor%Fügen Sie diese Methode zu AppDelegate.m
hinzu %Vor%Tippen Sie auf den unteren Rand der Schaltfläche und Sie sehen die aufgerufene Aktionsmethode, obwohl die sichtbare Rückmeldung nicht angezeigt wird.
Seltsamerweise, wenn Sie in eine beliebige Richtung drücken und ziehen, wird die visuelle Rückmeldung korrekt angezeigt.
Ich habe Ihren Code in einer iPad-App ausprobiert und die Schaltfläche "Test" wurde nur im Hochformat angezeigt.
Ich habe den folgenden Code verwendet, um ihn in der Landschaft erscheinen zu lassen und fügte auch ein Ziel für seine Aktion hinzu.
%Vor%In diesem Fall ist eine Autoresierungsmaske erforderlich, da Sie Frames für die Schaltfläche fest codiert haben. Ich habe hinzugefügt "UIViewAutoresizingFlexibleTopMargin" macht es sowohl im Querformat als auch im Hochformat sichtbar.
Fügte auch ein Ziel für die Schaltflächenaktion hinzu, die für die Antwort der Schaltfläche erforderlich ist.
Ich hoffe, es hilft.
wann werde ich deinen code testen meine simulator taste nicht sichtbar einfach nur gelb anzeigen. weil der Grund dafür ist, dass Ihre Taste y Position außerhalb des sichtbaren Bildschirms erstellt wird.
Ihre Taste y Wert 824.aber Gerätegröße 568 (iPhone 4 Zoll). So erstellen Sie mit der Schaltfläche die aktuellen sichtbaren Bildschirmgrenzen
%Vor%Ich habe Ihren Code im Testprojekt ausgeführt. Nachdem ich dieses Projekt ausgeführt habe, habe ich deinen Knopf nicht mehr gedrückt, weil es außerhalb des Rahmens war. Dann stelle ich den Rahmen richtig ein, dann erscheint die Schaltfläche und es wird eine Aktion angezeigt. Ich vermute, dass der Knopf außerhalb des Rahmens war, weshalb er die Aktion nicht erhalten hat. Bitte überprüfen Sie den Ansichtsrahmen und stellen Sie sicher, dass sich der Knopf in der Ansicht befindet, nicht außerhalb der Ansicht.
"Ich habe versucht, die Grenzen des Fensters anzupassen"
Der Knopf liegt nicht dort, wo du denkst. Es ist außerhalb der Grenzen, deshalb können Sie es nicht richtig drücken. Sie können nur innerhalb der Ansicht Tasten drücken und nicht Schaltflächen außerhalb der Ansicht, obwohl die Schaltfläche auf dem Bildschirm angezeigt wird.
Sie können die Statusleiste entfernen, wenn Sie sie nicht möchten ...
Denken Sie daran, dass Sie die Schaltfläche in der Ansicht anpassen sollten. Zeichnen Sie das auf Papier, zeichnen Sie das Telefon, müssen Sie nicht genau sein, aber Sie müssen alle Größen von Objekten wissen. Zeichnen Sie in der Statusleiste, wie viel Platz Sie noch haben. Wenn Sie dann die Bildgröße größer als die verbleibende Größe festlegen, wird das Bild außerhalb des zulässigen Bereichs angezeigt. Wenn es um die Schaltfläche geht, sollten Sie versuchen, keine statischen Daten für die Platzierung zu verwenden, sondern anhand der Größe der Ansicht bestimmen, wo sich die Schaltfläche in der Ansicht befinden soll.
%Vor%Tags und Links objective-c ios ios7 uikit uiwindow