Wenn iOS eine Warnung anzeigt, ist die Transluzenz konstant. Wenn meine App eine zeigt, ist die Warnung zunächst nur für eine halbe Sekunde weiß, dann wird sie durchsichtig. Es ist ein kleines Problem, aber es sieht chaotisch aus und Warnungen sollten überall konsistent sein, denke ich. Wie auch immer, hier ist der Code:
%Vor% Ich bin auch an den Meinungen der Leute interessiert. Ist das ein zu kleines Thema, um das sich irgendjemand Sorgen machen muss? Es sieht so aus, als ob UIAlertController
genau so funktioniert (zumindest wenn Entwickler es benutzen). Egal, es sieht chaotisch aus und ich würde es als einen Fehler betrachten (es sei denn, ich mache etwas falsch), da es nicht so aussieht wie wenn iOS eine Warnung anzeigt, obwohl es sollte.
Haftungsausschluss : Dies ist Teil der Meinung, teilweise erraten, und Teilerfahrung.
Das UIAlertController
hat zwei Hauptteile: den dunklen Hintergrund und die Nachrichtenansicht. Der dunkle Hintergrund scheint die sehr standardmäßige dunkelgrau / schwarz-transparente Ansicht zu sein, die für Pop-ups verwendet wird. In der Nachrichtenansicht wird dieselbe Art von Unschärfe verwendet, die für UIToolbar
und UINavigationController
verwendet wird.
Die Animation, die für den Übergang für UIAlertController
verwendet wird, ist eine Einblendung auf dem dunklen Hintergrund und eine Kombination aus Fade und Contract in der Nachrichtenansicht. Verblassen ist nicht das schwierig mit einer unscharfen Ansicht zu tun; iOS verwendet im Allgemeinen nur eine transparente Ansicht und die Snaps in einer unscharfen Ansicht oberhalb von alpha
von 0.999
. Diese Contracting-Animation aber ... das ist wo die Magie ist.
Es ist nicht nur eine Bildgrößenänderung, sondern der Inhalt der Nachrichtenansicht ändert sich auch tatsächlich.
Interessant dabei ist, dass jemand bei Apple nicht nur die Größe des Rahmens der Nachrichtenansicht ändert und den Text mit statischer Größe einblendet, sondern auch die Textgröße animiert, damit sie so aussieht, als würde sie landen der Bildschirm.
Diese Änderung des Labels, der Schaltfläche und der Bildgröße, kombiniert mit dem Verschwimmen in einer Unschärfe, fügt einer ziemlich einfachen Ansicht eine ziemlich große Komplexität hinzu. Anstatt sich mit jedem einzelnen Problem zu befassen, sieht es so aus, als hätte sich jemand entschieden, einen Schnappschuss der Ansicht zu verwenden, den Maßstabswechsel zu animieren und dann nach dem Abschluss der ursprünglichen Animation auf den gewünschten Look "überzugehen".
Warum dies bei Nachrichten direkt im OS nicht der Fall ist ... Hundefutter.
Für mich wird das gleiche Problem durch das Flag "Rendern mit Edge-Antialiasing" verursacht, das in der Info.plist-Datei auf YES gesetzt wird. Es wurde einmal festgelegt, um das Simulator-Tableview-Rendering zu verbessern, und wer wusste, dass es Auswirkungen auf das Rendern von Systemwarnungen auf dem Gerät hatte.
Tags und Links ios cocoa-touch uialertcontroller