Sembra che diversi dispositivi iOS rendano UINavigationBar
s con barStyle = UIBarStyleBlack
e translucent = YES
in modo molto diverso. Considerate:Come posso rilevare se un dispositivo iOS supporta l'effetto sfocatura?
iPhone 4, senza tinta:
iPhone 5, nessuna tinta:
iPhone 4, barTintColor = [UIColor colorWithWhite:0.0f alpha:0.5f]
:
iPhone 5, barTintColor = [UIColor colorWithWhite:0.0f alpha:0.5f]
:
L'iPhone 5 produce l'ef desiderato fect senza tinta, ma il 4 è opaco. L'aggiunta di una tinta semitrasparente fa sembrare il 4 buono, ma alza il 5.
Lo stesso vale per l'iPad 2 e 3, e in teoria qualsiasi dispositivo che non supporta gli effetti di sfocatura di iOS 7.
A parte la blacklist di questi vecchi dispositivi, come posso rilevare se un dispositivo supporta la sfocatura in modo da poter condizionare in modo condizionato le differenze di rendering? O c'è un modo per normalizzare l'aspetto senza usare una tinta?
Non esiste alcuna API pubblica, nonostante sia richiesta costantemente dagli sviluppatori dal seme beta 1. Il controllo del modello di dispositivo non è una soluzione perché gli utenti possono disattivarlo sui dispositivi più recenti. –
@FilipRadelic Whoa, davvero? Come posso disattivare l'effetto su un dispositivo più recente? –
Impostazioni -> Generale -> Accessibilità -> Aumenta il contrasto –