2010-09-06 9 views

Antwort

5

Ich glaube nicht der @2x Trick mit Web-Inhalten funktioniert. Klingt wirklich sehr nützlich, aber ich würde sicherlich einen Fehler bei Apple einreichen, um das anzufordern.

Wenn Sie den obigen HTML-Code aus Ihrer App generieren, denke ich, dass der beste Weg für den Augenblick darin besteht, zu erkennen, ob Sie auf einem Retina-Display-Gerät arbeiten und dann den Bildnamen manuell anpassen.

Sie können die Retina Display erkennen, indem so etwas wie dies zu tun:

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { 
    if ([[UIScreen mainScreen] scale] == 2) { 
     // Use high resolution images 
    } 
} 

(Nahm diesen Code aus einer Antwort, die ich hier in SO gefunden)

+0

Danke. Ich erzeuge den HTML-Code nicht aus der App, aber ich kann wahrscheinlich zwei verschiedene pathForResource-Dateien haben und basierend auf dem obigen Test den passenden verwenden. Ich werde es versuchen. –

+0

Es ist unwahrscheinlich, dass Sie ohne (nicht standardmäßige) META-Tags oder Ähnliches auskommen. Es ist keine gute Idee, die Anzahl der Anfragen zu verdoppeln, um ein paar schöne Bilder zu erhalten, vor allem seit den meisten Websites Websites) wird trotzdem im 1/2 oder 1/3 Maßstab gerendert. –

+0

Noch nicht fertig, aber das ist der Ansatz, den ich nehme. Ich habe vielleicht nicht verstanden, was mit "wenn Sie den HTML-Code aus Ihrer App generieren" gemeint ist, und deshalb habe ich tc vielleicht irregeführt. Der HTML-Code befindet sich in meinem Bundle. Es ist repariert; Wird für die App verwendet, um formatierten Text in einer UIWebview anzuzeigen. Keine Server beteiligt Ich erstelle den HTML-Code nicht im Handumdrehen, daher kann ich keinen anderen Bildnamen und keine anderen Dimensionen ersetzen, aber es ist einfach genug, eine zweite HTML-Datei mit hochauflösenden Bildreferenzen und Abmessungen für das iPhone4 zu haben und den oben vorgeschlagenen Code zu verwenden Entscheiden Sie, welche pathForResource verwendet werden soll. –

2

Derzeit den besten Weg, dies zu tun ist durch Bezugnahme auf Ihre Bilder in Ihrer CSS-Datei mit der background-image Eigenschaft. Anschließend können Sie eine spezielle CSS-Datei verwenden, die nur von Geräten mit hochauflösenden Bildschirmen geladen wird, um diese Eigenschaften zu überschreiben.

Weitere Informationen finden Sie unter this blog post.

14

Der Weg dazu ist mit CSS-Hintergründen. Einfach all deine 2x-Sachen in einen CSS-Unterabschnitt einbetten. Der Schlüssel ist auch, die -webkit-Hintergrundgröße festzulegen. Hier ist ein Beispiel für den Teil des css (sowohl Retina als auch nicht) für ein div mit dem id Ampersand, das als Bild fungiert.

div#Ampersand { 
    background: url('AmpersandBurned.png'); 
    width:43px; 
    height:97px; 
    float:left; 
    -webkit-background-size: 43px 97px; 
} 

@media screen and (-webkit-device-pixel-ratio: 2) { 
    div#Ampersand { 
    background: url('[email protected]'); 
    width:43px; 
    height:97px; 
    float:left; 
    } 
} 
+1

Du hast mich gerettet Mann! Ich konnte die tatsächliche Lösung, Retina-Bilder in CSS anzuzeigen, nicht finden – Volatil3

Verwandte Themen