Ho visto vari vecchi post relativi alle dimensioni delle immagini, ma non riesco a trovare nulla di aggiornato o addirittura sapere se è possibile con il solo catalogo delle risorse fornire immagini per tutte le dimensioni dello schermo di iPad e iPhone.Xcode 7, supporto per le immagini di sfondo del dispositivo universale?
Questo è il miglior messaggio che ho trovato, ma in Xcode 7 non mostra "Retina 4 2x" o iPhone 6/6+
Xcode 6 - xcassets for universal image support
in Xcode 7 c'è un opzione universale, ma le tre immagini non supportano tutte le dimensioni del dispositivo.
Ho visto le opzioni in cui è possibile fornire le proprie immagini al di fuori del catalogo delle risorse, ma mi piacerebbe davvero utilizzare il catalogo delle risorse.
How to use xcassets/universal background images for different iPhones/iPads?
EDIT: Sembra che avrei potuto andare per la strada nessuno catalogo patrimoniale :(
A)
vorrei prova di futuro questa soluzione, in modo da ricade e, se necessario, ridimensiona l'immagine più appropriata, poiché non sono sicuro che accadrà.
NSNumber *screenWidth = @([UIScreen mainScreen].bounds.size.width);
NSString *imageName = [NSString stringWithFormat:@"name-%@w", screenWidth];
UIImage *image = [UIImage imageNamed:imageName];
B)
O forse questo codice è meglio? Anche se non sono sicuro delle dimensioni a cui questo si riferisce, è anche un po 'obsoleto in quanto non supporta le immagini x3?
#import <UIKit/UIKit.h>
@interface UIImage (DefaultImage)
// uses statusbar orientation
+ (UIImage *)defaultImage;
//uses given orientation
+ (UIImage *)defaultImageForOrientation:(UIInterfaceOrientation)orient;
@end
@implementation UIImage (DefaultImage)
+ (UIImage *)defaultImage {
return [self defaultImageForOrientation:[[UIApplication sharedApplication] statusBarOrientation]];
}
+ (UIImage *)defaultImageForOrientation:(UIInterfaceOrientation)orient {
// choose the correct launch image for orientation, device and scale
NSMutableString *launchImageName = [[NSMutableString alloc] initWithString:@"Default"];
BOOL isPad = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
if (isPad) {
BOOL isLandscape = UIInterfaceOrientationIsLandscape(orient);
NSString *imageOrientation = (isLandscape) ? @"Landscape" : @"Portrait";
BOOL isRetina = ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0);
NSString *scaleString = (isRetina) ? @"@2x" : @"";
// Default-Landscape~ipad.png
// [email protected]~ipad.png
// Default-Portrait~ipad.png
// [email protected]~ipad.png
launchImageName = [NSMutableString stringWithFormat:@"%@-%@%@.png", launchImageName, imageOrientation, scaleString];
} else {
if (CGRectGetHeight([UIScreen mainScreen].bounds) > 480.f) {
// Default-568h.png
launchImageName = [NSMutableString stringWithFormat:@"%@-568h.png", launchImageName];
} else {
// Default.png
// [email protected]
launchImageName = [NSMutableString stringWithFormat:@"%@.png", launchImageName];
}
}
return [UIImage imageNamed:launchImageName];
}
@end
responsabilità: tratto da https://github.com/Daij-Djan/DDUtils
C)
Questo sembra anche un bene, ma è ri-dimensionamento e non utilizzando immagini reali nitide e non c'è caduta indietro.
https://gist.github.com/kevindelord/fe2e691d06ab745fbb00
NSString *extension = @""; // iPhone 3GS and earlier
if (scale == 3.f) {
extension = @"@3x"; // iPhone 6 Plus
} else if (scale == 2.f && h == 568.0f && w == 320.0f) {
extension = @"[email protected]"; // iPhone 5, 5S, 5C
} else if (scale == 2.f && h == 667.0f && w == 375.0f) {
extension = @"[email protected]"; // iPhone 6
} else if (scale == 2.f && h == 480.0f && w == 320.0f) {
extension = @"@2x"; // iPhone 4, 4S
} else if (scale == 1.f && h == 1024.0f && w == 768.0f) {
extension = @"-512h"; // iPad Mini, iPad 2, iPad 1
} else if (scale == 2.f && h == 1024.0f && w == 768.0f) {
extension = @"[email protected]"; // iPad Mini 3, iPad Mini 2, iPad Air, iPad Air 2
}
return extension;
Sto chiedendo la stessa domanda ************ e a nessuno sembra importare. Questo è come, super importante perché nessuno risponde? (A proposito, cosa hai finito con le immagini per iPad?) – durazno
Ho finito con l'uso del codice vernice per disegnare i miei sfondi in effetti ho praticamente sostituito tutte le mie immagini.Nel mio caso ho bisogno di regolare molto le dimensioni delle cose, quindi le immagini rigeneranti erano poco pratiche. – Jules
Quindi hai deciso di perdere un po 'la qualità delle tue immagini e minimizzare le dimensioni del file binario ...? Quello che sto cercando è una soluzione per entrambi. Non voglio perdere la qualità non un po 'e allo stesso tempo non voglio guadagnare dimensioni binarie ... – durazno