Frage

Ich habe eine Warnung Ansicht worden bewegt etwas höher, so kann ich auch eine Tastatur auf dem Bildschirm passen. Ich tue dies nur durch den Rahmen des Alarms Grabbing und das Ändern der Y, nachdem ich bereits die Warnung gezeigt habe, so dass die Rahmengrößen sind echt. Dies funktioniert auf dem Simulator in Ordnung, aber wenn ich dies tue auf der Hardware, startet der Alarm an der richtigen Stelle, aber dann fast sofort springt zu seinem ursprünglichen vertikaler Mitte Platz ist. Ist die UIAlertView Position eine feste Sache, die angeblich nicht nach den Usability-Richtlinien zu ändern, oder bin ich nur falsch, etwas zu tun?

Danke!

War es hilfreich?

Lösung

Was O versuchen Sie diesen gegen? Ich habe diese beiden zu arbeiten auf dem OS 3.0 Simulator und OS 3.0 Device:

UIAlertView * alert = [ [ UIAlertView alloc ] initWithTitle:@"Alert" message:@"Alert" 
                        delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil ];

alert.transform = CGAffineTransformTranslate( alert.transform, 0.0, 100.0 );

[ alert show ];

CGAffineTransformTranslate hat drei Argumente: die vorhandene Transformation, eine x-Transformation und eine y-Transformation. Im Beispiel habe ich erschien die Warnungsansicht 100 Pixel höher als es normalerweise tun würde. Geben Sie diesem einen Versuch und sehen, was passiert.

Auch, ich bin ziemlich sicher, dass Sie den Rahmen ändern können, bevor die Warnung zeigt, wie es wahrscheinlich der Alarm-Rahmen in init einrichtet das Zentrum des gesamten Bildschirms standardmäßig sein.

Andere Tipps

Seit iOS4 um UIAlertViews bewegt wird schwierig. Ich habe bemerkt, dass, wenn Sie eine UITextField subview auf dem UIAlertView hinzufügen, auf iOS4 wird der Alarm nach oben bewegt, so dass die Tastatur es nicht überlappen. Dies geschieht nicht,

Auch habe ich bemerkt, dass der Rahmen des Alarms nicht einmal initialisiert wird nach Show genannt wird, so gibt es keine einfache programmatische Art und Weise eine relative CGAffineTransformation zu tun. Die einzige Lösung wäre bedingte Transformationen basierend auf der OS-Version zu tun.

Für mich sieht aus wie über nicht dokumentierte Verhalten von UIAlertViews Threading, das Thema ist jederzeit ändern. Ich glaube nicht, dass Apple bedeutete für uns die Warnungen für etwas mehr als Texte und Tasten werden (auch wenn ihre eigenen Anwendungen dieser Regel brechen).

Ich für starte meine eigenen benutzerdefinierten Benachrichtigungen für diese Art von Szenarien zu bauen.

Ist das nicht eine Warnung sein soll modal - das heißt: Sie würde nicht generell führen Sie eine beliebige andere Benutzereingaben während ein Alarm aktiv ist? Wenn dies der Fall ist, warum dann würden Sie brauchen Sichtbarkeit der Tastatur?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top