Czy ktoś mógłby podać mały przykład zastosowania rozmycia na obrazie? Od jakiegoś czasu próbowałem wymyślić kod :( wciąż nowy w obj c!
UIVisualEffectView
Zapewnia prosty abstrakcji nad złożonych efektów wizualnych. W zależności od pożądanego efektu wyniki mogą wpływać na treść ułożoną warstwą za widokiem lub zawartość dodaną do contentView widoku.Zastosuj a
UIVisualEffectView
do istniejącego widoku, aby zastosować efekt rozmycia lub jaskrawości do wychodzącego widoku. Po dodaniu UIVisualEffectView do hierarchii widoków dodaj wszystkie widoki podrzędne do contentView widokuUIVisualEffectView
. Nie dodawaj widoków podrzędnych bezpośrednio doUIVisualEffectView
siebie.
UIVisualEffectView
„scontentView
github.com/onmyway133/blog/issues/124Odpowiedzi:
Wystarczy umieścić ten widok rozmycia na imageView. Oto przykład w Celu C:
i Szybki:
źródło
Oto jak używać UIVibrancyEffect i UIBlurEffect z UIVisualEffectView
Cel C:
Swift 4:
źródło
extension UILabel { override func tintColorDidChange() { textColor = tintColor; super.tintColorDidChange() } }
removeFromSuperView
, robisz[self.visualEffectView setHidden:NO];
? Przydzielanie i dodawanie do widoku jest kosztowną operacją niż tworzenie ukrywania lub wyświetlania.Możesz także użyć konstruktora interfejsów, aby łatwo tworzyć te efekty w prostych sytuacjach. Ponieważ wartości Z widoków będą zależeć od kolejności, w jakiej są wymienione w
UIVisualEffectView
konspekcie dokumentu , możesz przeciągnąć na kontur dokumentu przed widokiem, który chcesz rozmazać. To automatycznie tworzy zagnieżdżenieUIView
, które jestcontentView
właściwością danegoUIVisualEffectView
. W tym widoku zagnieżdżaj rzeczy, które mają się pojawiać na szczycie rozmycia.Możesz także z łatwością skorzystać z żywotności
UIVisualEffect
, która automatycznie utworzy kolejną zagnieżdżonąUIVisualEffectView
w konspekcie dokumentu z domyślnie włączoną jaskrawością. Następnie możesz dodać widok zagnieżdżonej etykiety lub tekstuUIView
(ponowniecontentView
właściwośćUIVisualEffectView
), aby uzyskać taki sam efekt, jak element interfejsu użytkownika „> przesuń, aby odblokować”.źródło
Wolę tworzyć efekty wizualne za pomocą Storyboard - bez kodu używanego do tworzenia lub zarządzania elementami interfejsu użytkownika. Daje mi również pełne wsparcie krajobrazowe. Zrobiłem małą demonstrację użycia UIVisualEffects z Blur, a także Vibrancy.
Demo na Github
źródło
Jeśli ktoś chciałby uzyskać odpowiedź w Swift:
Aktualizacja :
Na razie jest dostępny pod IB, więc nie musisz nic kodować :)
źródło
źródło
Służy do rozmywania tła, zarówno jasnego, jak i ciemnego, dzięki czemu tekst można łatwiej nakładać. Możesz opcjonalnie włączyć jaskrawość, która powoduje, że tekst jest renderowany w jasnym, kontrastowym kolorze obok rozmycia.
źródło