secondo la vostra richiesta ...
test per la funzionalità. Se vuoi sapere se hai bisogno di visualizzare un'immagine retina o un'immagine normale, prova se il tuo dispositivo ha un display retina, non che è di un modello particolare (prova a posteriori la tua applicazione come meglio puoi, significa che devi cambiare meno cose quando esce un nuovo modello). Per fare questo, è possibile utilizzare il seguente codice di esempio:
if([[UIScreen mainScreen] respondsToSelector:@selector(scale)] &&
[[UIScreen mainScreen] scale] == 2.0)
{
/* We have a retina display. */
}
else
{
/* We do not. */
}
Questo codice è sicuro, in quanto parte del tempo ho scritto questo, su tutti i modelli e su tutte le versioni del firmware. Sarà sicuro anche nelle versioni future fino a quando Apple non ritirerà il metodo scale
, che potrebbe non succedere mai.
Altro sulla tua domanda, non so come farlo in una visualizzazione Web senza avere prima le posizioni su un'immagine di retina e un'immagine senza retina. Una volta che ho queste informazioni, l'ho usata (in passato) per rimpiazzare alcuni testi sentinella conosciuti che la pagina web si aspettava che io sostituissi, in quanto metterei qualcosa nell'HTML che aveva detto: {{{image_location}}}
dove potevo scaricare l'HTML dati, prendi il formato stringa, quindi sostituisci quella stringa sostituendo quel testo, con l'URL dell'immagine @ 2x se siamo su un display retina, con il fattore di scala appropriato, o l'immagine di dimensioni normali se non (usando il codice sopra).
Spero che questo aiuti se nessuno arriva con una soluzione migliore.
Dato che non sono arrivate risposte migliori, lo accetto come una soluzione praticabile. Idealmente UIWebView dovrebbe gestirlo da solo per le immagini locali, ma controllando la scala dello schermo dei dispositivi e regolando di conseguenza l'HTML funziona. –
Su un iPad in modalità 2x, la scala è anche 2.0. – occulus
Certo, ma si riferisce comunque alle applicazioni per iPhone. Le app per iPad non vengono eseguite in modalità ridimensionata. Pertanto, se gestisci correttamente questa custodia sull'app per iPhone, non si tratta di un problema. :) – jer