Ich bin fast fertig mit der iPhone-Version meiner App, als ich erkannte, dass ich (wahrscheinlich?) Bedingungen für jedes UI-Element schreiben muss, weil sie unterschiedliche Grafiken verwenden. Dies wird meinen Code sehr unordentlich machen. Ich habe 15 verschiedene benutzerdefinierte UI-Steuerelemente und ich kann mir nicht vorstellen, dass die Einrichtung eines bedingten ("if ipad laden image_ipad, wenn iphone laden image_iphone") für jede Methode der beste Weg ist, dies zu tun. Kann jemand eine bestimmte Technik vorschlagen, um damit umzugehen? Oder gibt es eine Möglichkeit, Bilder zwischen Retina und Regular zu benennen?Wie kann der Code minimiert werden, wenn verschiedene Bilder für iPad und iPhone verwendet werden?
Wie kann der Code minimiert werden, wenn verschiedene Bilder für iPad und iPhone verwendet werden?
Antwort
Sie müssen nur den grundlegenden Image-Namen übergeben .. sagen wir, unser Image-Name ist "Apple.png" ,, dann werden Sie den get Bildnamen wie diese UIImage *image = [UIImage ImageNamed:@"Apple.png"]
schreiben und der Name für das Bild für die folgenden Fälle wird sein:
1. iPad> put ~ ipad, wird Bild Name sein "Apple~ipad.png"
2. iPhone> put ~ iphone, Bild Name "Apple~iphone.png"
3.for Retina sehen sein> put @ 2x, Bildname ist "[email protected]"
4.wenn Sie haben diffrenet Bild für Retina diplay für ipad und iphone es so sein wird ,, für iPad "[email protected]~ipad.png"
,, für iPhone "[email protected]~iphone.png"
Wenn Sie es wie dieser iOS Name wird die beste Übereinstimmung Bildnamen und laden Sie es erkennen.
scheint legitime Antwort –
Danke. Das ist eine sehr hilfreiche Antwort. – frankie
Wenn Sie Versionen für Retina und nicht Retina haben möchten, müssen Sie nur zwei Versionen Ihres Assets in Ihrem Bundle speichern. Wenn Ihr Asset button.png heißt, speichern Sie:
-button.png für die Nicht-Retina-Version. [email protected] für die Retina-Display-Version.
Ihr Code:
UIImage * myImage = [UIImage imageNamed:@"button.png"];
Das System wird automatisch für das @ 2x.png überprüfen, ob Netzhaut oder es wird die andere für nicht Retina wählen
Sie können myImage in Ihrer benutzerdefinierten UI platzieren und das OS erledigt den Rest für Sie ;-)
- 1. Verschiedene Launchorientierungen für iPad und iPhone?
- 2. Wie verschiedene UI-Elemente für iPhone und iPad mit Größenklasse
- 3. Wie man vertikale Räume von Elementen justiert, wenn man einzelnes Storyboard für iPhone und iPad verwendet
- 4. laden Verschiedene Startbildschirm für iPad/iPhone
- 5. Wie kann der Codebereich in Eclipse minimiert werden?
- 6. Verschiedene Storyboards für iPad und iPhone nicht richtig
- 7. iOS Tabellen - gleicher Code verschiedene Farben auf iPad vs iPhone
- 8. Qt für iPhone/iPad?
- 9. Wie können Karten-Tags für zwei überlappende Bilder verwendet werden?
- 10. HTTP-Header: Last-Modified - wie kann die Serverlast minimiert werden?
- 11. Wie kann der benutzerdefinierte ClassLoader verwendet werden?
- 12. Kann die Ausrichtung des iPhone/iPad im Browser verhindert werden?
- 13. CSS-Hintergrundbilder werden auf iPad und iPhone nicht richtig skaliert.
- 14. iOS Universal App iPad-Startbilder werden nicht verwendet
- 15. iPhone Kamera Bilder werden gedreht, wenn ins Web hochgeladen
- 16. Wie kann die Speicherauslastung eines Strukturtyps minimiert werden?
- 17. iPhone & Ipad - wie gabele ich einen Code?
- 18. Wie kann der benutzerdefinierte Code ausgeführt werden, wenn @BeforeClass fehlschlägt
- 19. ipad erkennen, wenn UIPopoverControllers entlassen werden
- 20. Kann Web RTC auf dem iPhone verwendet werden, und wenn ja, wie?
- 21. Wie ausgeblendet werden Bilder?
- 22. Wie kann der folgende Code optimiert werden?
- 23. Wenn und vlookup Funktionen zusammen verwendet werden
- 24. Retina Bilder (@ 2x ~ iPad) nicht geladen, wenn iPad Bild nicht existiert (~ iPad)
- 25. Kann Annotationsprozessor für die Codegenerierung verwendet werden?
- 26. IE6 PNG Transparentfix für Bilder, die mit rotate.php verwendet werden
- 27. Welche SDKs können zum Erstellen von Offline-Karten-Anwendungen für iPad/iPhone verwendet werden?
- 28. Kann ElasticSearch nur für Aggregationen verwendet werden?
- 29. Kann Buddypress innerhalb einer iPhone App verwendet werden?
- 30. Wie kann verhindert werden, dass Bilder/Blöcke umgebrochen werden?
Warum sollten Sie keine Standardsteuerelemente verwenden, die automatisch zwischen iPhone und iPad skalieren, anstatt benutzerdefinierte Steuerelemente zu erstellen? – melsam
All meine Benutzeroberfläche ist benutzerdefinierte Grafiken. UIKit steuert, meine eigenen Bilder. – frankie
Warum haben sie unterschiedliche Größen auf dem iPad? Fast jedes UIKit Control ist auf beiden Geräten gleich groß. Nur die Navigationsleiste ändert ihre Höhe. – calimarkus