2011-06-19 8 views
7

Rozumiem, jak programowo ładować obrazy do mojej aplikacji z adresu URL zamiast pakować je w aplikację, ale jak mam sobie radzić z problemem 1x vs 2x? W razie potrzeby mogę obsługiwać obie wersje ze źródła zewnętrznego, ale jak sobie z tym poradzić podczas ustawiania UIImage?Jak należy obsłużyć retina/normalne obrazy podczas ładowania z adresu URL?

+0

Próbowałaś tylko przedstawieniu http://example.com/image.png ale w tym miejscu location image & [email protected] pliki? – Luke

Odpowiedz

7

Jestem prawie pewien, że nie można załadować plików wideo 2x 2x zdalnie w sposób zautomatyzowany. Trzeba będzie sprawdzić na wyświetlaczu siatkówki, a następnie uzyskać odpowiedni obraz (y), tak jak poniżej:

UIImage *image; 
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2){ 
    // @2x 
    NSURL *imageURL = [NSURL URLWithString:@"http://www.example.com/images/[email protected]"]; 
    NSData * imageData = [NSData dataWithContentsOfURL:imageURL]; 
    image = [UIImage imageWithData:imageData]; 
} else { 
    // @1x 
    NSURL *imageURL = [NSURL URLWithString:@"http://www.example.com/images/yourImage.png"]; 
    NSData * imageData = [NSData dataWithContentsOfURL:imageURL]; 
    image = [UIImage imageWithData:imageData]; 
} 
UIImageView *yourImageView = [[UIImageView alloc] initWithImage:image]; 
+4

Nie powinieneś ustawić również "contentScaleFactor" z 'yourImageView' na' [[UIScreen mainScreen] scale] 'like' [yourImageView setContentScaleFactor: [[UIScreen mainScreen] scale]] '? – Ali

Powiązane problemy