2011-01-31 27 views
6

Tôi muốn sử dụng các hình ảnh khác nhau trong ứng dụng iPhone, tùy thuộc vào thiết bị hiện tại là iPhone 3G, iPhone 4 hoặc iPad. Tôi đã cố gắng nhận được độ phân giải màn hình (kích thước) của thiết bị, nhưng nó luôn trả về 320 X 480 cho các iPhone khác nhau.Tôi làm cách nào để sử dụng các hình ảnh khác nhau, tùy thuộc vào loại thiết bị iOS?

Làm cách nào để xác định loại thiết bị tôi đang chạy để tôi có thể cung cấp hình ảnh chính xác?

Tôi không muốn nhận phiên bản hệ điều hành iPhone.

+8

Bất cứ điều gì sai với '@ 2x' đồ đặt tên cho hình ảnh độ phân giải cao? – BoltClock

Trả lời

7

Nếu bạn muốn thông tin này cho mục đích chọn đồ họa thích hợp cho độ phân giải của bạn, thì câu trả lời của middaparka là những gì bạn đang tìm kiếm.

Tuy nhiên, nếu bạn cần thông tin về mô hình hoặc độ phân giải thiết bị cho một mục đích khác thì UIDevice và UIScreen có thể là những gì bạn muốn.

NSString *myDeviceModel = [[UIDevice currentDevice] model]; 
CGRect myScreenSize = [[UIScreen mainScreen] bounds].size; 
+1

+1 Tình yêu để biết lý do tại sao điều này đã được bình chọn - đây là sau tất cả các câu trả lời "thuần khiết". –

10

Có nhiều khả năng bạn không cần làm những gì bạn đang cố gắng làm, vì iOS đã hỗ trợ tải hình ảnh ở kích thước thích hợp cho iPhone (độ phân giải võng mạc và độ phân giải võng mạc) và iPad.

Đọc Resource Programming Guide (cụ thể là phần "Chỉ định hình ảnh có độ phân giải cao trong iOS" và "Hỗ trợ tài nguyên cụ thể cho thiết bị iOS") và iOS Application Programming Guide để biết thêm thông tin.

Ngẫu nhiên, cả trước và sau võng mạc iPhone/Pods có một điểm độ phân giải 320 X 480. của Apple phân biệt giữa kích thước điểm (độ phân giải độc lập) và kích thước pixel để giúp mọi thứ trên đường đi.

+1

Chỉ cần chỉnh sửa nhỏ - iPad không có độ phân giải điểm 320x480, đó là các thiết bị nhỏ hơn. IPad có độ phân giải 1024x768 điểm. –

+0

@Kendall Điểm tốt - có nghĩa là "Pod". Đã sửa. :-) –

+1

Bạn cũng có thể thêm rằng bạn có thể thử nghiệm cho một yếu tố hình thức có kích cỡ viên bằng cách sử dụng 'if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)', trong trường hợp các thiết bị máy tính bảng trong tương lai không có kích thước màn hình chính xác 1024x768 điểm. –

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