1.一般程序从启动到程序主页,都会有一个中间splash页面(该页面主要是来判断升级,初始化数据请求等)
a.程序启动会马上显示程序默认图片LaunchImage(还没进第一个viewcontroller就会显示)
如下方法可以设置默认图片(Assets)
Paste_Image.png
Paste_Image.png
b.进入splash页面后。
1.1如果不指定splash页面背景图片,会默认显示空白背景页面,进入首页前就会有白一下的效果。(如果进入主页前有多个vc,那每个vc都要修改)
1.2如果直接用Assests集合,一张图片设置背景图片。这样进入splash页面,这张默认图片会有跳动和拉伸效果(应该是格式不适应导致)
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, HHBWIDTH, HHBHEIGHT)];
imageView.image = [UIImage imageNamed:@"LaunchImage"];
[self.view addSubview:imageView];
原因:既然自适应不行,我们就手动指定
二.解决:
1.工程里添加各种尺寸的背景图片,这4张图片都是从上图assests里面复制过来。
Paste_Image.png
2.在splash页面添加各自尺寸的背景图片(我这里的splah页面是LaunchViewController)
//判断设备的屏幕尺寸
#define IS_SCREEN_40_INCH ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
#define IS_SCREEN_35_INCH ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)
#define IS_SCREEN_47_INCH ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) : NO)
#define IS_SCREEN_55_INCH ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size) : NO)
+ (void)addDefaultImageWithVC:(UIViewController*)vc
{
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, HHBWIDTH, HHBHEIGHT)];
NSString *imageName = nil;
if(IS_SCREEN_55_INCH){
imageName = @"launchImage55";
}else if(IS_SCREEN_35_INCH){
imageName = @"launchImage35";
}else if(IS_SCREEN_40_INCH){
imageName = @"launchImage40";
}else{
imageName = @"launchImage47";
}
imageView.image = [UIImage imageNamed:imageName]; // LaunchImagedefe LaunchImage
[vc.view addSubview:imageView];
}
// LaunchViewController.m
@implementation LaunchViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self getAdImageProcedure];
}
- (void)getAdImageProcedure
{
[HuConfigration addDefaultImageWithVC:self];
//其他动作
}
@end
效果在进入主页面前,都只显示这张图片。
Paste_Image.png
如果您发现本文对你有所帮助,如果您认为其他人也可能受益,请把它分享出去。