Позвольте мне начать с того, что следующее, что я знаю, нахмурено Apple и будет отклонено App Store, если оно представлено. Это не проблема, так как это не будет представлено в любом случае. Это внутреннее приложение.iOS 8 Всплеск изображений после запуска приложения
С этим теперь нет. Мне нужна помощь в настройке 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],
([email protected]"NO":@"YES"));
}
else if (IS_IPAD) {
// Loading IPAD
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
NSLog(@"didFinish: %@; stillLoading:%@", [[webView request]URL],
([email protected]"NO":@"YES"));
}
else {
// Loading iPhone 3.5"
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
NSLog(@"didFinish: %@; stillLoading:%@", [[webView request]URL],
([email protected]"NO":@"YES"));
}
}
Как вы можете видеть, я работаю, насколько это возможно. Мне нужно добавить код 6/6 +.
Или, если кто-нибудь знает более простой способ сделать это, я все уши.
Основная цель - предотвратить белую вспышку после загрузки приложения. Я пробовал задерживать запуск, но поскольку мое приложение в основном веб-просмотр, оно совсем не помогает.
Спасибо за чтение и помощь.
Почему бы не использовать стандартные вещи, чтобы сделать заставку? почему вы делаете это в программе? –
Хорошо, я думал, что я сделал эту часть прозрачной. В любом случае. То, что я пытаюсь сделать/сделал, - загрузочные изображения после запуска приложения. По сути, это эффект задержки при загрузке исходного веб-представления. Это позволяет избежать белой вспышки экрана, которая может раздражать. Я понимаю, что вы можете использовать каталог активов для загрузки изображений из ресурсов, а также создать файл запуска с помощью nib или xib, содержащих эти изображения. Но делать это остается. Код выше уже находится в контроллере представления, поэтому, когда приложение запускается, он вызывает этот код, показывает изображения и затем исчезает после загрузки моего веб-браузера. Имеют смысл? – ChrisOSX