iOS -- LaunchScreen歡迎介面動畫效果
為什麼會出現歡迎介面?
程式在啟動的過程中需要消耗一些時間,那麼在加載出現主介面之前,會出現短暫的黑屏,這實在是很糟糕的一件事情,會給使用者一個非常不好的體驗。為了緩解使用者等待過程中心理的不適與煩躁,歡迎介面閃亮登場了!
用歡迎介面來替代黑屏的等待,可以有效的掩蓋耗時阻塞的後臺操作,還能向用戶展示有效的資訊,是非常好的一種過渡方案。但是有的程式把歡迎介面做成了廣告版,浪費了使用者更多的時間,讓使用者覺得厭煩,對程式本身功能也失去了興趣,這種做法實在是很不明智。
歡迎介面的種類?
歡迎介面種類有很多,大致分為靜態和動態兩種。
動態的歡迎介面。程式執行起來,歡迎介面之後,會進入AppDelegate,因此我們可以在application: didFinishLaunchingWithOptions:新增程式碼完成想要的效果。
方法:
可以直接利用LaunchScreen.xib中得view,在上面新增一個UIImageView顯示圖片,然後將其加在window上,並顯示在最上層。廣告圖片顯示之後,再將view移除掉,顯示程式的主介面。
程式碼如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary
[self.windowmakeKeyAndVisible];
lunchView = [[NSBundlemainBundle ]loadNibNamed:@"LaunchScreen"owner:niloptions:nil][0];
lunchView.frame = CGRectMake(0, 0, self.window.screen.bounds.size.width, self.window.screen.bounds.size.height);
[self.windowaddSubview:lunchView];
UIImageView
NSString *str = @"http://club.dayoo.com/club_data/upload_photo/rtys/2008/07/21/988/2473.gif"; [imageV sd_setImageWithURL:[NSURLURLWithString:str] placeholderImage:[UIImageimageNamed:@"default1.jpg"]];
[lunchView addSubview:imageV];
[self.windowbringSubviewToFront:lunchView];
[NSTimerscheduledTimerWithTimeInterval:6target:selfselector:@selector(removeLun) userInfo:nilrepeats:NO];
return YES;
}
-(void)removeLun {
[lunchViewremoveFromSuperview];
}
載入本地的gif圖片可以使用SDWebImage這個第三方框架:方法如下
UIImage *image = [UIImagesd_animatedGIFNamed:@"啟動圖"];
UIImageView *gifView = [[UIImageView alloc] initWithFrame:CGRectMake(40, 80, image.size.width, image.size.height)];
gifView.backgroundColor = [UIColororangeColor];
gifView.image = image;
[self.view addSubview:gifView];
存在的問題:
這樣寫,程式啟動時仍會出現一個空白的頁面,這個空白頁面結束後才會走didFinishLaunchingWithOptions:此方法裡的程式碼。
暫時不知道怎麼消除預設空白頁。