1.一般程序從啟動(dòng)到程序主頁警绩,都會(huì)有一個(gè)中間splash頁面(該頁面主要是來判斷升級(jí)滚秩,初始化數(shù)據(jù)請(qǐng)求等)
a.程序啟動(dòng)會(huì)馬上顯示程序默認(rèn)圖片LaunchImage(還沒進(jìn)第一個(gè)viewcontroller就會(huì)顯示)
如下方法可以設(shè)置默認(rèn)圖片(Assets)
b.進(jìn)入splash頁面后。
1.1如果不指定splash頁面背景圖片奈偏,會(huì)默認(rèn)顯示空白背景頁面坞嘀,進(jìn)入首頁前就會(huì)有白一下的效果。(如果進(jìn)入主頁前有多個(gè)vc惊来,那每個(gè)vc都要修改)
1.2如果直接用Assests集合丽涩,一張圖片設(shè)置背景圖片。這樣進(jìn)入splash頁面裁蚁,這張默認(rèn)圖片會(huì)有跳動(dòng)和拉伸效果(應(yīng)該是格式不適應(yīng)導(dǎo)致)
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, HHBWIDTH, HHBHEIGHT)];
imageView.image = [UIImage imageNamed:@"LaunchImage"];
[self.view addSubview:imageView];
原因:既然自適應(yīng)不行矢渊,我們就手動(dòng)指定
二.解決:
1.工程里添加各種尺寸的背景圖片,這4張圖片都是從上圖assests里面復(fù)制過來。
2.在splash頁面添加各自尺寸的背景圖片(我這里的splah頁面是LaunchViewController)
//判斷設(shè)備的屏幕尺寸
#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];
//其他動(dòng)作
}
@end
效果在進(jìn)入主頁面前枉证,都只顯示這張圖片矮男。
如果您發(fā)現(xiàn)本文對(duì)你有所幫助,如果您認(rèn)為其他人也可能受益刽严,請(qǐng)把它分享出去昂灵。