自定义启动图有很多方法, 原理都差不多, 系统的LaunchImage是不能修改的, 所以可以用它当做底图, 然后再往这个图上加自己的需求
//在AppDelegate声明启动图 customLaunchImageView
//在didFinishLaunchingWithOptions 调用[self setUpLaunchScreen]
//注意:self.window的rootViewController已设置
//添加启动图
- (void)setUpLaunchScreen {
self.customLaunchImageView = [[UIImageView alloc]initWithFrame:self.window.bounds];
self.customLaunchImageView.userInteractionEnabled = YES;
self.customLaunchImageView.image = [UIImage imageNamed:@"这个图片需和LaunchImage图片一模一样, 要判断尺寸"];
//自定义控件我就略了
[self.customLaunchImageView addSubview: yourLabel];
[self.customLaunchImageView addSubview: yourImageView];
[yourImageView setImageWithURL:[NSURL URLWithString:@"图片地址填写服务器返回的地址"]
placeholderImage:[UIImage imageNamed:@"占位图可以不写"]];
[yourButton addTarget:self action:@selector(yourButtonClick) forControlEvents:UIControlEventTouchDown];
[self.customLaunchImageView addSubview:yourButton];
[self.window addSubview:self.customLaunchImageView];
[self.window bringSubviewToFront:self.customLaunchImageView];
//5秒后自动关闭
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5*NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self yourButtonClick];
});
}
- (void)yourButtonClick {
//是否显示新版本引导页加在这里
//移动自定义启动图
if (self.customLaunchImageView) {
[UIView animateWithDuration:0.3 animations:^{
self.customLaunchImageView.alpha = 0;
} completion:^(BOOL finished) {
[self.customLaunchImageView removeFromSuperview];
self.customLaunchImageView = nil;
}];
}
}