2015-12-18 16 views
5

Muszę zaimplementować UINavigationBar z niestandardową konstrukcją, obraz z tyłu musi zostać zmieniony, wszystkie kolory muszą zostać zmienione, a wysokość musi zostać zmieniona.Zmień efekt rozmycia UINavigationBar

Wiem, że wszystko jest możliwe, ale muszę zmienić efekt rozmycia. Musi to być jaśniejsze rozmycie. Czy można to zrobić bez wchodzenia w prywatne API?

Edit: obraz co to ma wyglądać (wiem, pasek statusu jest piksele, zignoruj ​​go):

enter image description here

+0

można wydrukować próbny obraz o pożądanej wydajności? –

+0

@ Mr.T Dodałem przykład, standardowe rozmycie 'UINavigationBar' rozmazuje tylko ogólne obszary koloru, góra łuku nie będzie tak jasna. – vrwim

+0

Użyj dodatkowego światła UIBlurEffect podczas tworzenia swojego UIVisualEffectView i zastosuj to do paska UINavigationBar – SushiHangover

Odpowiedz

1

UIVisualEffectView doda przezierność i efekt rozmycia na iOS 8+ widoki .

Dostępne są trzy rozmycia UIBlurEffectStyles.

- (void)addBlurEffect{ 

    CGRect bounds = self.navigationController.navigationBar.bounds; 
    UIVisualEffectView *visualEffectView = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]]; 
    visualEffectView.frame = bounds; 
    visualEffectView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
    [self.navigationController.navigationBar addSubview:visualEffectView]; 
    self.navigationController.navigationBar.backgroundColor = [UIColor clearColor]; 
    [self.navigationController.navigationBar sendSubviewToBack:visualEffectView]; 
} 

Aby uzyskać więcej informacji o UIVisualEffectView, zaznacz to question on SO.

*************** edycji dla iOS 7 ***************

Nicklockwood „s FXBlurView weszła zdjęcie na ratunek dla iOS5, iOS6, iOS7.

Tworzę dla ciebie sample project, który ma pożądany dynamiczny efekt rozmycia na pasku nawigacji dla iOS7. Postępuj zgodnie z instrukcjami poniżej, aby użyć go w swoim projekcie.

  1. Look w AppDelegate.m
  2. Tu dodać obraz tła na pasku nawigacyjnym. Możesz zaktualizować obraz w dowolnej kontrolce viewcontroller, aby uzyskać dynamiczny obraz tła rozmycia na pasku nawigacyjnym.
  3. Istnieje kilka właściwości efektów FXblurview, takich jak blurRadius, iterations, tintColor; które musisz read here.

Instrukcja instalacji: - kod https://github.com/nicklockwood/FXBlurView?source=c#installation

Pełna źródło z FXBlurView-master może found here.

+0

Dowolny backport/obejście dla iOS 7? Naprawdę potrzebuję tego dla mojej aplikacji. Sprawdzę (i zaakceptuję, jeśli to zadziała) tę dzisiejszą odpowiedź. – vrwim

+1

Pracuję nad przykładową aplikacją i wkrótce zmienię moją odpowiedź dotyczącą obejścia ios7. Pozostawanie w kontakcie. – pkc456

+0

@vrwim, aktualizuję odpowiedź na iOS7 lub mniejsze wersje systemu operacyjnego. – pkc456

Powiązane problemy