APP启动画面实现方式
2012-08-21 22:29
232 查看
APP启动画面实现方式
在工程中添加名为Default.png的图片,程序在加载完毕之前会显示此图片。在applicationDidFinishLaunching完成之后,画面会被程序自己的view替代。
如果要同时支持iphone4之前的设备(非Retina屏)和iphone4之后的设备(Retina屏),需要放两张不同分辨率的启动图片,用于非Retina屏的Default.png,分辨率320*480;用于Retina屏的Default@2x.png,分辨率640*960。
Default.png图片只能在applicationDidFinishLaunching完成之前显示,如果在applicationDidFinishLaunching之后,主视图要从网络获取一些数据才能完全显示时,中间就会出现不完整的主界面视图,为了避免这个问题,可以在主界面获取到数据之前模态显示与Default.png相同的启动画面,直至主界面完全准备好。
AppDelegate.m
MainViewController.m
在applicationDidFinishLaunching结束时,显示模态窗口(modalViewController),模态窗口中仅有一个启动画面,等待2s钟后(或等待网络数据加载完成时),取消显示模态窗口。
另一种方式是将启动画面作为第一个视图控制器,在网络数据加载完成时再生成主视图控制器显示。
AppDelegate.m
FirstPageController.m
FirstPageController中仅显示启动画面,在首页启动画面显示完毕时开始加载网络数据,在网络数据加载完成时,创建主视图控制器MainViewController,然后将主视图控制器加入到firstPageController的superview即appDelegate的window中,然后firstPageControll自己的视图从父视图中退出。
参考:
IPHONE TUTORIAL FOR CREATING A SPLASH SCREEN
Automatic orientation support for iPhone and iPad apps
Delay while loading Default.png
一.启动图片 Default.png
在工程中添加名为Default.png的图片,程序在加载完毕之前会显示此图片。在applicationDidFinishLaunching完成之后,画面会被程序自己的view替代。如果要同时支持iphone4之前的设备(非Retina屏)和iphone4之后的设备(Retina屏),需要放两张不同分辨率的启动图片,用于非Retina屏的Default.png,分辨率320*480;用于Retina屏的Default@2x.png,分辨率640*960。
二.模态窗口
Default.png图片只能在applicationDidFinishLaunching完成之前显示,如果在applicationDidFinishLaunching之后,主视图要从网络获取一些数据才能完全显示时,中间就会出现不完整的主界面视图,为了避免这个问题,可以在主界面获取到数据之前模态显示与Default.png相同的启动画面,直至主界面完全准备好。AppDelegate.m
- (void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after app launch mainViewController = [[MainViewController alloc] init]; [window addSubview:mainViewController.view]; [window makeKeyAndVisible]; [mainViewController showSplash]; } - (void)dealloc { [mainViewController release]; [window release]; [super dealloc]; }
MainViewController.m
-(void)showSplash { UIViewController *modalViewController = [[[UIViewController alloc] init]autorelease]; modalViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentModalViewController:modalViewController animated:NO]; [self performSelector:@selector(hideSplash) withObject:nil afterDelay:2.0]; } //hide splash screen - (void)hideSplash{ [self dismissModalViewControllerAnimated:YES]; }
在applicationDidFinishLaunching结束时,显示模态窗口(modalViewController),模态窗口中仅有一个启动画面,等待2s钟后(或等待网络数据加载完成时),取消显示模态窗口。
三.首页启动画面
另一种方式是将启动画面作为第一个视图控制器,在网络数据加载完成时再生成主视图控制器显示。AppDelegate.m
- (void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after app launch firstPageController = [[FirstPageController alloc] init]; [window addSubview:firstPageController.view]; [window makeKeyAndVisible]; } - (void)dealloc { [firstPageController release]; [window release]; [super dealloc]; }
FirstPageController.m
-(void) viewDidLoad{ [super viewDidLoad]; [self loadData]; } -(void) loadData{ //加载数据代码 [self performSelector:@selector(finishLoadData) withObject:nil afterDelay:0.5f]; } -(void) finishLoadData{ MainViewController *mainViewController = [[MainViewController alloc] init]; [self.view.superview addSubview:mainViewController.view]; [self.view removeFromSuperview]; }
FirstPageController中仅显示启动画面,在首页启动画面显示完毕时开始加载网络数据,在网络数据加载完成时,创建主视图控制器MainViewController,然后将主视图控制器加入到firstPageController的superview即appDelegate的window中,然后firstPageControll自己的视图从父视图中退出。
参考:
IPHONE TUTORIAL FOR CREATING A SPLASH SCREEN
Automatic orientation support for iPhone and iPad apps
Delay while loading Default.png
相关文章推荐
- 如何实现app文件,第一次使用时的启动画面
- Android app 启动画面实现
- APP启动界面的实现,第一种方式
- APP启动引导页实现方式
- Qt中实现启动画面(延时过程中要加上app.processEvents())
- 在App中启动另一个App的实现方式
- 利用ViewPager实现app的启动画面
- Android启动画面实现
- 6.app启动画面的过度
- [Phonegap+Sencha Touch] 移动开发61 使用 URL Schemes实现一个App启动另一个App的功能
- 启动就加载(一)----注解方式实现的。static项目启动的时候就加载进来(一般用于常用参数)
- android如何实现开机自动启动Service或app
- 关于iOS app添加开机启动画面…
- 实现点击app不显示界面,开机自启动后直接启动服务(适用于只启动服务不想显示界面)
- MFC 软件登陆界面的实现(可以用来做启动画面,添加bmp图片,然后给图片加点击响应事件。)
- 分析Android App中内置换肤功能的实现方式
- QT 类及其实现效果(3)--启动画面与图像变换
- Android冷启动实现APP秒开
- Android启动画面实现
- Android 启动另一个App/apk中的Activity实现代码