需求:启动页显示后显示请求的广告页,显示3.2.1数字倒数之后,跳转到首页。
问题1:直接设置广告页3秒后隐藏,造成广告页图片显示过来后只显示了1就结束了。
不要这么设置:

应该使用倒计时的两种方法的其中一种,当秒数count变为0,隐藏广告页。
问题2:虽然3.2.1正常显示了,但是由于appdelegate里(代码),如下图,

先执行获取启动的广告页,但是当网络不顺畅时,请求往往比较慢,此时代码会往下执行,那么你看的页面可能是,启动页,主页,然后3.2.1倒计时的广告页,这样给用户看的效果很差。
解决:

在window上再盖一层view(可以直接add ImageView),这样感觉就好像还是在启动页,但是可能因为请求比较慢,你已经显示下面window的内容了,当请求到广告页的url之后,在要隐藏广告页的同时隐藏我们add的view。这样就不会有之前很奇怪的视角了。
这里介绍一下两种倒计时的方式:

NSTimer在完成后invalidate就可以,代码显得较为简洁易懂。
另一种代码注释的方式是GCD方式
单纯启动页延时方法:
在AppDelegate.m里写上
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[NSThread sleepForTimeInterval:2.0];//延时2秒钟
[self.window makeKeyAndVisible];
return YES;
}
网友评论