程式啟動畫面 自動進行淡出效果以淡入的方式進入程式主畫面SplashDemoAppDelegate.h #import <UIKit/UIKit.h> #import "SplashViewController.h" @class SplashDemoViewController; @interface SplashDemoAppDelegate : NSObject <UIApplicationDelegate> { UIWindow *window; SplashViewController *viewController; } @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic,retain) IBOutlet SplashViewController *viewController; @end SplashDemoAppDelegate.m #import "SplashDemoAppDelegate.h" #import "SplashDemoViewController.h" @implementation SplashDemoAppDelegate @synthesize window; @synthesize viewController; - (void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after app launch viewController=[[SplashViewController alloc] init]; [window addSubview:viewController.view]; [window makeKeyAndVisible]; } - (void)dealloc { [viewController release]; [window release]; [super dealloc]; } @end SplashViewController.h #import <UIKit/UIKit.h> #import "SplashDemoViewController.h" @interface SplashViewController : UIViewController { NSTimer *timer; UIImageView *splashImageView; SplashDemoViewController *viewController; } @property (nonatomic,retain) NSTimer *timer; @property (nonatomic,retain) UIImageView *splashImageView; @property (nonatomic,retain) SplashDemoViewController *viewController; @end SplashViewController.m #import "SplashViewController.h" @implementation SplashViewController @synthesize timer,splashImageView,viewController; /* // The designated initializer. Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { // Custom initialization } return self; } */ // Implement loadView to create a view hierarchy programmatically, without using a nib. - (void)loadView { CGRect appFrame=[[UIScreen alloc] applicationFrame]; UIView *view=[[UIView alloc] initWithFrame:appFrame]; //view.autoresizingMask=UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth; self.view=view; [view release]; splashImageView=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"splashdemo.jpg"]]; splashImageView.frame=CGRectMake(0,0,320,480); [self.view addSubview:splashImageView]; viewController=[[SplashDemoViewController alloc] initWithNibName:@"SplashDemoViewController" bundle:[NSBundle mainBundle]]; viewController.view.alpha=0.0; [self.view addSubview:viewController.view]; timer=[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(fadeScreen) userInfo:nil repeats:NO]; } -(void)fadeScreen{ [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.75]; [UIView setAnimationDelegate:self]; [UIView setAnimationDidStopSelector:@selector(finishedFading)]; self.view.alpha=0.0; [UIView commitAnimations]; } -(void)finishedFading{ [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.75]; self.view.alpha=1.0; viewController.view.alpha=1.0; [UIView commitAnimations]; [splashImageView removeFromSuperview]; } - (void)dealloc { [splashImageView release]; [viewController release]; [super dealloc]; }