Позвольте мне начать с того, что то, что я знаю, не одобряется Apple и будет отклонено App Store, если оно будет представлено. Это не проблема, так как это не будет отправлено в любом случае. Это внутреннее приложение.
С этим сейчас покончено. Мне нужна помощь в настройке операторов if, else и else if. До перехода на iPhone 6 и 6+ мой текущий код работал для iPhone5/5s и ниже размеров экрана при загрузке и отправке правильного изображения после запуска приложения.
Моя цель здесь — включить iPhone 6/6+ в это уравнение.
Ниже приведен соответствующий код, относящийся к этому.
Это загружает изображения до нужного размера экрана.
//Setting Splash Images
#define IS_IPHONE (!IS_IPAD)
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPhone)
bool isiPhone5 = CGSizeEqualToSize([[UIScreen mainScreen] preferredMode].size,CGSizeMake(640, 1136));
if (isiPhone5) {
// Load iPhone 5 Splash
UIImage *splash4Inch = [UIImage imageNamed:@"[email protected]"];
self.splash4InchPortrait = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 568.0f)];
[self.splash4InchPortrait setImage:splash4Inch];
[self.view addSubview:self.splash4InchPortrait];
[self.view bringSubviewToFront:self.splash4InchPortrait];
self.splash4InchPortrait.contentMode = UIViewContentModeScaleToFill;
}
else if (IS_IPAD) {
// Load IPad Splash
UIImage *splashPad = [UIImage imageNamed:@"Default-Portrait~ipad.png"];
self.splashPadPortrait = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 768.0f, 1024.0f)];
[self.splashPadPortrait setImage:splashPad];
[self.view addSubview:self.splashPadPortrait];
[self.view bringSubviewToFront:self.splashPadPortrait];
self.splashPadPortrait.contentMode = UIViewContentModeScaleToFill;
}
else {
// Load the iPhone 3.5" Splash
UIImage *splash35Inch = [UIImage imageNamed:@"Default.png"];
self.splash35InchPortrait = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 480.0f)];
[self.splash35InchPortrait setImage:splash35Inch];
[self.view addSubview:self.splash35InchPortrait];
[self.view bringSubviewToFront:self.splash35InchPortrait];
self.splash35InchPortrait.contentMode = UIViewContentModeScaleToFill;
}
Это скрывает/отображает указанные изображения в зависимости от того, какой размер экрана загружен.
//Get screen size
CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (UIDeviceOrientationIsPortrait(self.interfaceOrientation)){
//DO Portrait
if (screenBounds.size.height <=480) {
//code for 3.5-inch screen
splash35InchPortrait.hidden = NO;
splashRetina35InchPortrait.hidden = YES;
splash4InchPortrait.hidden = YES;
}else{
// code for 3.5 Retina inch screen
splashRetina35InchPortrait.hidden = NO;
}
}else{
// code for 4-inch screen
splash35InchPortrait.hidden = YES;
splashRetina35InchPortrait.hidden = YES;
splash4InchPortrait.hidden = NO;
}
Это завершающий код, когда изображение исчезает.
- (void)webViewDidFinishLoad:(UIWebView *)webview {
#define IS_IPHONE (!IS_IPAD)
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPhone)
bool isiPhone5 = CGSizeEqualToSize([[UIScreen mainScreen] preferredMode].size,CGSizeMake(640, 1136));
if (isiPhone5) {
// Loading iPhone 5
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
NSLog(@"didFinish: %@; stillLoading:%@", [[webView request]URL],
(webView.loading?@"NO":@"YES"));
}
else if (IS_IPAD) {
// Loading IPAD
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
NSLog(@"didFinish: %@; stillLoading:%@", [[webView request]URL],
(webView.loading?@"NO":@"YES"));
}
else {
// Loading iPhone 3.5"
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
NSLog(@"didFinish: %@; stillLoading:%@", [[webView request]URL],
(webView.loading?@"NO":@"YES"));
}
}
Как видите, у меня это работает в меру своих возможностей. Мне нужно добавить код 6/6+.
Или, если кто-нибудь знает лучший, более простой способ сделать это, я весь внимание.
Основная цель — предотвратить белую вспышку после загрузки приложения. Я пытался отложить запуск, но, поскольку мое приложение в основном представляет собой веб-просмотр, это совсем не помогает.
Спасибо за чтение и помощь.