2015-12-18 28 views
5

Devo implementare uno UINavigationBar con un design personalizzato, l'immagine posteriore deve essere cambiata, tutti i colori devono essere cambiati e l'altezza deve essere cambiata.Modifica effetto sfocatura di UINavigationBar

So tutto ciò che è possibile, ma ho anche bisogno di cambiare l'effetto sfocatura. Deve essere una sfocatura più leggera. C'è un modo per farlo senza entrare nelle API private?

Edit: una foto di quello che si suppone per assomigliare (so che la barra di stato è pixel, ignorarlo):

enter image description here

+0

è possibile inserire un'immagine campione dell'uscita desiderata? –

+0

@ Mr.T Ho aggiunto un esempio, lo sfocatura 'UINavigationBar' standard mantiene solo le aree generali di colore, la parte superiore dell'arco non sarebbe così chiara. – vrwim

+0

Usa UIBlurEffect extra leggero durante la creazione di UIVisualEffectView e applicalo a UINavigationBar – SushiHangover

risposta

1

UIVisualEffectView aggiungerà traslucenza e l'effetto sfocato su iOS 8+ vista .

Sono disponibili tre sfocatura 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]; 
} 

Per ulteriori informazioni su UIVisualEffectView, controllare questo question on SO.

*************** di modifica per iOS 7 ***************

Nicklockwood s' è entrato in FXBlurView immagine per il salvataggio per iOS5, iOS6, iOS7.

Creare un sample project per voi che ha l'effetto sfocatura dinamico desiderato sulla barra di navigazione per iOS7. Segui la guida qui sotto per utilizzare nel tuo progetto.

  1. Guardare in AppDelegate.m
  2. Qui aggiungo l'immagine di sfondo alla barra di navigazione. È possibile aggiornare l'immagine in qualsiasi viewcontroller per ottenere un'immagine di sfondo sfocato dinamico sulla barra di navigazione.
  3. Ci sono alcune proprietà di FXblurview come blurRadius, iterations, tintColor; che devi read here.

Guida all'installazione: - Codice https://github.com/nicklockwood/FXBlurView?source=c#installation

sorgente completo di FXBlurView-master può found here.

+0

Qualsiasi backport/soluzione alternativa per iOS 7? Ne ho davvero bisogno per la mia app. Controllerò (e accetto se funziona) questa risposta stasera. – vrwim

+1

Sto lavorando all'applicazione di esempio e modificheremo presto la mia risposta per la soluzione di ios7. Rimani connesso. – pkc456

+0

@vrwim, aggiorno la risposta per iOS7 o versioni di SO minori. – pkc456