2011-12-27 15 views
6

Thiết bị Retina iOS không hiển thị hình ảnh @ 2X, nó hiển thị hình ảnh 1X.Thiết bị Retina iOS không hiển thị hình ảnh @ 2X, nó hiển thị hình ảnh 1X

Tôi đang sử dụng Xcode 4.2.1 Build 4D502, ứng dụng được nhắm mục tiêu iOS 5.

tôi đã tạo ra một ứng dụng thử nghiệm (Master/Detail) và bổ sung thêm hai hình ảnh.

iconTest.png 24 x 24 [email protected] 48 x 48 Mỗi hình ảnh là duy nhất để tôi có thể dễ dàng biết cái nào đang được hiển thị.

Trong viewDidLoad tôi thêm một nút để điều khiển chuyển hướng ...

UIImage *buttonImage = [UIImage imageNamed:@"iconTest.png"]; 
UIBarButtonItem *button = [[UIBarButtonItem alloc] 
          initWithImage:buttonImage 
            style:UIBarButtonItemStyleBordered 
            target:self 
            action:@selector(share)]; 
self.navigationItem.rightBarButtonItem = button; 

Khi tôi chạy ứng dụng thử nghiệm này trong iOS Simulator nó sẽ hiển thị một cách chính xác vào biểu tượng cho một thiết bị iOS võng mạc. Trong trình mô phỏng, Hardware-> Device-> được đặt thành iPhone (Retina). Và khi tôi tạm dừng ứng dụng và nhìn vào đối tượng buttonImage tôi có thể thấy tỷ lệ được đặt thành 2.

Điều này hoạt động như mong đợi!

Tuy nhiên, khi tôi đính kèm iPhone 4 và chạy ứng dụng, hình ảnh có độ phân giải thấp hơn sẽ hiển thị. Và, khi tôi tạm dừng ứng dụng và nhìn vào đối tượng buttonImage tôi có thể thấy tỷ lệ là 1.

Đây không phải là hành vi mong đợi.

Bất kỳ ý tưởng nào về lý do điều này khác nhau giữa trình mô phỏng và thiết bị iOS thực?

Đây có phải là sự cố đã biết không? Có cách giải quyết nào không?

Xin cảm ơn, Brian.

+0

Hãy thử làm sạch và xây dựng lại dự án nếu gần đây bạn chỉ thêm hình ảnh mới - thường hình ảnh không được chọn nếu bạn đã đổi tên các tệp hiện có. – jrturton

Trả lời

17

Tên tệp phân biệt chữ hoa chữ thường trên iPhone chứ không phải trên Trình mô phỏng iPhone. Bạn cần sử dụng @2x thay vì @2X.

+0

Chỗ tốt, mắt đại bàng! – jrturton

+1

Đúng, đó là vấn đề. Tôi đã thay đổi 2X đến 2x và bây giờ hình ảnh võng mạc hiển thị trên iPhone thực sự 4. Cảm ơn bạn đã chỉ ra điều đó !! –