2010-10-11 9 views
5

Ho un sito Web in linea incorporato in UIWebView. Ho creato un foglio di stile per formattare tutto perfettamente sullo schermo dell'iPhone, ma ho bisogno di una formattazione diversa per sfruttare meglio lo schermo dell'iPad.fogli di stile CSS diversi per iPad e iPhone nell'applicazione universale

Ho provato a utilizzare il codice per copiare semplicemente un foglio di stile diverso, ma ciò comporta la modifica del pacchetto di applicazioni che è scoraggiato o, in questo caso, semplicemente non funziona.

Qualcuno può pensare ad un modo per caricare un foglio di stile diverso a seconda che l'app sia in esecuzione su iPhone o iPad? Ho migliaia di file HTML sincronizzati con un sito Web, quindi non posso modificarli molto facilmente. Ho bisogno di un modo per cambiare il foglio di stile che viene caricato usando javascript o spostando il file css in una certa posizione.

Devo anche menzionare che si tratta di un'applicazione universale con quasi lo stesso codice (e file di pennino leggermente diversi) in esecuzione su entrambi.

risposta

3

È possibile utilizzare uno CSS media query? Potresti iniettarlo nelle tue pagine usando stringByEvaluatingJavaScriptFromString:.

+1

Questa è la strada che ho seguito per una recente demo interna e ha funzionato alla grande. Supponendo che i tuoi contenuti siano per lo più gli stessi e vuoi solo modellarli diversamente, questo è sicuramente il metodo più rapido che conosca. – Toji

+0

Quale javascript dovrei usare per iniettare i collegamenti CSS? innerHTML() o c'è un modo migliore? (Scusa, non ho molta familiarità con DOM.) – Nimrod

+0

Il mio JavaScript è pazzo arrugginito. Forse @ Toji può fornire una guida. Non sono sicuro se sia veloce o efficiente in termini di memoria, ma potresti anche manipolare l'HTML come stringa mutabile prima di caricarlo nella visualizzazione web. –

2

Tramite il codice lato server, è possibile rilevare iPad User Agent e scrivere un tag link in un foglio di stile diverso. Probabilmente andrei con logica lato server piuttosto che Javascript, semplicemente perché non mi piace la possibilità di un "sfarfallio" di farlo con Javascript.

+0

Non c'è lato server. UIWebView carica il contenuto statico localmente dal pacchetto di applicazioni. Fondamentalmente uso UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad per verificare se sto eseguendo su un ipad quindi faccio alcune cose in modo diverso (come i popover presenti per alcune cose). Ho bisogno di un modo per modificare UIWebView in modo simile per sovrascrivere il file CSS che carica per impostazione predefinita. – Nimrod

0

Perché non dare un'occhiata a 960 Grid System http://960.gs. Aiuta ad usare diversi formati CSS in base al dispositivo che incontra

Problemi correlati