Trong thư mục tài nguyên iOS của tôi, tôi có những hình ảnh:NSBundle pathForResource: ofType: và UIImage imageWithContentsOfFile: quy mô xử lý và công cụ sửa đổi thiết bị như thế nào?
foo~iphone.png
[email protected]~iphone.png
foo~ipad.png
[email protected]~ipad.png
tôi tải chúng với:
NSString *fileName = [[NSBundle mainBundle] pathForResource:@"foo" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:fileName];
thực nghiệm:
Trên iPhone, filename
là /path/to/bundle/foo~iphone.png
, và trên võng mạc iPhone, nó tải phiên bản @2x
.
Trên iPad, filename
là /path/to/bundle/foo~ipad.png
và trên iPad võng mạc, phiên bản này tải phiên bản @2x
.
Tức là, nó tải hình ảnh tôi muốn, nhưng pathForResource
xử lý công cụ sửa đổi thiết bị và imageWithContentsOfFile
xử lý công cụ sửa đổi tỷ lệ.
Tôi muốn biết lý do. documentation của pathForResource
không nói gì về công cụ sửa đổi thiết bị và documentation của imageWithContentsOfFile
không nói gì về công cụ sửa đổi tỷ lệ.
Có tài liệu riêng biệt cho biết chính xác chức năng của từng chức năng không?
giá trị gì là chuỗi fileName của bạn giữ khi bạn thiết lập một bp trên dòng UIImage? Nói cách khác làm thế nào để bạn biết quy mô đang xảy ra trong imageWithContentsOfFile? –
@MarkM, như tôi đã nói, trên iPhone, 'filename' là'/path/đến/bundle/foo ~ iphone.png', vì vậy tôi biết nó chỉ nhận được tên của phiên bản không phải @ 2x.Khi tên này được đưa vào 'UIImage', tôi nhận được phiên bản có độ phân giải cao –