2011-06-19 42 views
7

Tôi hiểu cách tải hình ảnh một cách có lập trình cho ứng dụng của tôi từ URL thay vì đóng gói chúng trong ứng dụng nhưng làm cách nào để xử lý vấn đề 1x so với 2x? Tôi có thể phục vụ cả hai phiên bản từ nguồn bên ngoài nếu cần nhưng làm cách nào để xử lý điều đó khi thiết lập UIImage?Ảnh võng mạc/hình ảnh bình thường sẽ được xử lý như thế nào khi tải từ URL?

+0

Bạn đã thử chỉ tham chiếu http://example.com/image.png nhưng ở vị trí đó image & image[email protected] tệp? – Luke

Trả lời

7

Tôi chắc rằng bạn không thể tải các tệp hình ảnh @ 2x từ xa theo cách tự động. Bạn sẽ phải kiểm tra hiển thị võng mạc và sau đó nhận được (các) hình ảnh thích hợp, như vậy:

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

Bạn cũng không nên đặt 'contentScaleFactor' của' yourImageView' thành '[[UIScreen mainScreen] scale]' như '[yourImageView setContentScaleFactor: [[UIScreen mainScreen] scale]]'? – Ali

Các vấn đề liên quan