IOS UIImage образа запуска для текущего устройства
Есть ли способ получить образ запуска как UIImage для текущего устройства? или UIImageView с изображением
3 ответа
Решение
Вам просто нужно получить Default.png
который будет иметь любое @2x
применяется по мере необходимости.
- (UIImage *)splashImage {
return [UIImage imageNamed:@"Default.png"];
}
Если вы хотите получить конкретный iPhone 5, вам нужно проверить высоту:
- (UIImage *)splashImage {
if ([[UIScreen mainScreen] bounds].size.height == 568.0){
return [UIImage imageNamed:@"Default-568h.png"];
} else {
return [UIImage imageNamed:name];
}
}
Вы можете написать что-то вроде этого.
Здесь мы выясняем, какое изображение-заставку показывать (в зависимости от устройства и поворота экрана) и добавляем его в качестве подпредставления в наше окно.
- (void)showSplashImage
{
NSString *imageSuffix = nil;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
imageSuffix = [[UIScreen mainScreen] bounds].size.height >= 568.0f ? @"-568h@2x" : @"@2x";
}
else
{
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
imageSuffix = UIInterfaceOrientationIsPortrait(orientation) ? @"Portrait" : @"-Landscape";
imageSuffix = [UIScreen mainScreen].scale == 2.0 ? [imageSuffix stringByAppendingString:@"@2x~ipad"] : [imageSuffix stringByAppendingString:@"~ipad"];
}
NSString *launchImageName = [NSString stringWithFormat:@"Default%@.png",imageSuffix];
NSMutableString *path = [[NSMutableString alloc]init];
[path setString:[[NSBundle mainBundle] resourcePath]];
[path setString:[path stringByAppendingPathComponent:launchImageName]];
UIImage * splashImage = [[UIImage alloc] initWithContentsOfFile:path];
UIImageView *imageView = [[UIImageView alloc] initWithImage:splashImage];
imageView.tag = 2;
[self.rootViewController.view addSubview:imageView];
}
Сначала уменьшите имя образа запуска, используя [UIDevice currentDevice]
а также [UIScreen mainScreen]
а затем прочитайте изображение, как и для любого другого изображения ресурса.
[UIImage imageNamed:yourLaunchedImageName];