Tôi đang phát triển một ứng dụng sử dụng iOS 5.1 và tôi đang gặp phải một số hành vi lạ với các tệp default.png.iOS 5.1 và Default.png
Tôi đã thêm các tập tin sau đây để ứng dụng của tôi:
Default.png - (iPhone)
[email protected] - (iPhone Retina)
Default-Portrait ~ ipad .png - (iPad)
[email protected]~ipad.png - (iPad Retina)
Khi ứng dụng bắt đầu có vẻ như nó chọn đúng hình ảnh Default.png để sử dụng cho từng dịp. Tuy nhiên, trong appdelegate của tôi, tôi có một màn hình giật gân đơn giản để làm mượt tải của ứng dụng và chuyển đổi sang các ứng dụng, làm một cái gì đó như:
UIImageView *splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,window.frame.size.width, window.frame.size.height)];
splashView.image = [UIImage imageNamed:@"Default"];
[window addSubview:splashView];
[window bringSubviewToFront:splashView];
Tuy nhiên [UIImage imageNamed:@"Default"]
lần lượt không chọn đúng file cho mỗi thiết bị và tôi tin rằng vấn đề là phần -Portrait
của tên tệp.
Vì vậy, như một giải pháp nhanh chóng tôi đã làm điều này:
if(([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)) {
// Force the image used by ipads
if([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0) {
splashView.image = [UIImage imageNamed:@"[email protected]~ipad"];
}
else {
splashView.image = [UIImage imageNamed:@"Default-Portrait~ipad"];
}
}
else
splashView.image = [UIImage imageNamed:@"Default"];
Đây có phải là làm thế nào tôi nên làm điều này? Điều này có vui không?
Điều này có vui cho bạn không? đó là vui – Krishnabhadra
Hãy thử một số NSLogging để xem chính xác những gì đang xảy ra. –
@rokjarc Làm thế nào bạn có thể NSLog tệp nào được chọn bởi SDK khi bạn thực hiện một đơn giản '[UIImage imageNamed: @" Default "]'? – mobius