Hinzufügen von verblassenden Farben und Transparenz zu UIView

7

Ich weiß, wie ich eine Ansicht erstellen und animieren kann, wie sie in der Unteransicht "Teilen" der neuen App Store-App von iOS 6+ angezeigt wird (siehe angehängter Screenshot), aber ich weiß nicht, wie ich das hinzufügen soll < starker> Farbeffekt mit Transparenz in dieser Ansicht. Jeder kann ein Codebeispiel bereitstellen, damit ein UIView genau dem im Screenshot entspricht?

P.S. Die alpha -Eigenschaft allein von UIView tut so etwas nicht.

    
JAHelia 13.02.2013, 13:29
quelle

7 Antworten

30

Sie können diese Methode zu einer UIView-Kategorie hinzufügen und bei Bedarf erneut verwenden. Es wendet einen linearen schwarzen Farbverlauf von "theColor" auf die angegebene Ansicht an.

Sie sollten QuartzCore.framework in Ihrem Projekt haben, um das CAGradientLayer-Objekt zu verwenden.

%Vor%

Bitte beachten Sie, dass backgroundColor of the View auf clearColor gesetzt sein sollte, damit es den Farbverlauf nicht stört. Für die im Screenshot gezeigten Ergebnisse sollte das TransparentToOpaque-Flag YES sein.

    
PedroSilva 18.02.2013, 16:51
quelle
6

Hier ist die Lösung von PedroSilva, die in Swift übersetzt wurde, falls jemand sie benötigt (auch vertikale Option hinzugefügt)

%Vor%     
Halyna Rubashko 11.09.2015 12:48
quelle
4
%Vor%

Wo layer die Ebene Ihrer Ansicht ist.

    
Mikhail Viceman 13.02.2013 13:37
quelle
3

Sie können einfach ein halbtransparentes png als Hintergrund verwenden, um den Effekt so zu erhalten. Stellen Sie sicher, dass Sie den opaque der UIView auf NO setzen und alles wird gut.

    
Bird 16.02.2013 02:17
quelle
3

Es ist keine Magie nötig, um diesen Effekt zu erreichen. Du solltest es tun wie Apple es tut. UIImageViews mit kleinen, gestreckten Bildern.

Diese Ansicht (das Quadrat der unteren Hälfte, das die Symbole enthält) verwendet ein Bild, das sich dehnt und diesen Effekt erzeugt.

Sie sollten auch diese Methode befolgen. Ihre Ansichten sind sehr leicht und es kostet nur ein paar Tests in Photoshop, um den richtigen Effekt zu erzielen.

Wie ich bemerkt habe, verwendet Apple niemals Gradienten-Layer auf dem iPhone. Es muss wesentlich mehr GPU verbrauchen, weil es ihnen eine Menge Bilder gespeichert hätte ...

Hier ist ein ähnliches Bild zum Testen.

Ich hoffe, es hilft.

    
Elias Limneos 20.02.2013 04:14
quelle
2

Sie müssen nur den Alphawert der Hintergrundfarbe der Ansicht auf den gewünschten Wert setzen.

Siehe beigefügte Postleitzahl. Gehen Sie zu der nib-Datei des AlphaViewControllers und sehen Sie sie dort

Ich habe den Alpha-Wert für die Unteransicht nur auf 70% festgelegt. Sie können es entsprechend Ihren Anforderungen tun.

    
Tarun 20.02.2013 04:55
quelle
1

Falls jemand Swift 3.X

benötigt %Vor%

Andere Möglichkeit in Swift 3.x

%Vor%     
SML 30.05.2017 09:19
quelle