1

iPhoneアプリケーションにアニメーションのスプラッシュ画面を実装する必要があります。同じことがすでに実装されているSkypeアプリケーションを見たことがあります。

誰もが私のアプリケーションで同じことを実装する方法を知っていますか?

4

7 に答える 7

2

.gif画像を表示するwebViewと、完璧に見えます!

withという名前の新しいUIViewControllerクラスを取得し、 with (320.0, 480.0) フレームを追加します。これも非表示です。SplashViewXIBUIWebViewstatusbar

SplashView.h

#import <UIKit/UIKit.h>
@interface SplashView : UIViewController
@property(nonatomic, retain)IBOutlet UIWebView *webView;
@end

SplashView.m

- (void)viewDidLoad
{
   [super viewDidLoad];
   NSString *imagePath = [[NSBundle mainBundle] pathForResource: @"animated" ofType: @"gif"];
   NSData *data = [NSData dataWithContentsOfFile:imagePath];
   [self.webView setUserInteractionEnabled:NO];
   [self.webView loadData:data MIMEType:@"image/gif" textEncodingName:nil baseURL:nil];
}

これはSplashViewクラスについてです。appdelegate のクラスに移動します。

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];

    [[UIApplication sharedApplication] setStatusBarHidden:YES];
     splashView = [[SplashView alloc]initWithNibName:@"SplashView" bundle:nil];
    [self.window addSubview:splashView.view];

    [self performSelector:@selector(changeView) withObject:nil afterDelay:3.0];

    [self.window makeKeyAndVisible];
    return YES;
}

-(void)changeView
{
    [[UIApplication sharedApplication] setStatusBarHidden:NO];
    [splashView.view removeFromSuperview];
    [self.window setRootViewController:self.viewController];
}
于 2012-10-05T11:50:19.250 に答える
2

UIView と Imageview を取り込みます。すべての画像を ImageView に渡してアニメーション化します。

-(void)viewDidLoad
{
 NSArray *arrImage=[NSArray arrayWithObjects:
                             [UIImage imageNamed:@"1.png"],
                             [UIImage imageNamed:@"2.png"],
                             [UIImage imageNamed:@"3.png"],
                             nil];

    imgVw.backgroundColor=[UIColor purpleColor];
    imgVw.animationImages=arrImage;
    imgVw.animationDuration=2.5;
    imgVw.animationRepeatCount=1;
    [imgVw startAnimating]; 

    [NSTimer scheduledTimerWithTimeInterval:4.0 target:self selector:@selector(animateNext) userInfo:nil repeats:NO];

}

これにより、アプリケーションのアイコンが表示されます。

その後、デフォルトでは非表示になっているコントロールを表示し、下から上にアニメーション化します。

-(void)animateNext
{
    lbl.hidden = NO;
    btn.hidden = NO;
    txt1.hidden = NO;
    txt2.hidden = NO;

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1.9];
    lbl.frame=CGRectMake(lbl.frame.origin.x,lbl.frame.origin.y - 150,lbl.frame.size.width,lbl.frame.size.height);
    imgVw.frame = CGRectMake(imgVw.frame.origin.x, imgVw.frame.origin.y - 150, imgVw.frame.size.width, imgVw.frame.size.height);
    txt1.frame = CGRectMake(txt1.frame.origin.x, txt1.frame.origin.y - 150, txt1.frame.size.width, txt1.frame.size.height);
    txt2.frame = CGRectMake(txt2.frame.origin.x, txt2.frame.origin.y - 150, txt2.frame.size.width, txt2.frame.size.height);
    btn.frame = CGRectMake(btn.frame.origin.x, btn.frame.origin.y - 150, btn.frame.size.width, btn.frame.size.height);
    [UIView commitAnimations];    


}

この助けを願って...

于 2012-10-06T04:51:21.997 に答える
2

一連の画像を使用できます。コードは次のとおりです。

for(NSInteger i=1;i<=totalImages;i++){
        NSString *strImage = [NSString stringWithFormat:@"Activity_%d",i];
        UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:strImage ofType:@"png"]];
        [imageArray addObject:image];
    }
    splashImageView.animationImages = imageArray;
    splashImageView.animationDuration = 0.8;

UIImageViewのstartAnimationとendAnimationメソッドを呼び出すだけです。

また

その非常に単純な...私はそれを使って私のアプリをsplashViewで始めました。

アプリケーション didFinishLaunchingWithOptions:

UIImage* image=[UIImage imageNamed:@"splash.jpg"];
splashView=[[UIImageView alloc]initWithImage:image];
[window addSubview:splashView];
[window bringSubviewToFront:splashView];
[self performSelector:@selector(removeSplash) withObject:self afterDelay:2];
[window makeKeyAndVisible];

スプラッシュ ビューを削除するには:

-(void)removeSplash{

    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:window cache:YES];
    [UIView setAnimationDuration:0.75];
    [UIView setAnimationDelegate:self];
    [splashView removeFromSuperview];
    [UIView commitAnimations];
    [window addSubview:viewController.view];
}
于 2012-10-05T11:18:31.947 に答える
1

これを試して

Appdelegate.h

   @interface AppDelegate : UIResponder <UIApplicationDelegate> 
    {
        UIImageView *splashView;
    }

@property (strong, nonatomic) UIWindow *window;

@property (strong, nonatomic) ViewController *viewController;

- (void)startupAnimationDone:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context;

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];

// Make this interesting.
    splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0, 320, 480)];
    splashView.image = [UIImage imageNamed:@"Default.png"];
    [self.window addSubview:splashView];
    [self.window bringSubviewToFront:splashView];
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:2.0];
    [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:self.window cache:YES];
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(startupAnimationDone:finished:context:)];
    splashView.alpha = 0.0;
    splashView.frame = CGRectMake(-60, -85, 440, 635);
    [UIView commitAnimations];

    return YES;
}

- (void)startupAnimationDone:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
    [splashView removeFromSuperview];
}
于 2012-10-05T11:18:59.333 に答える
1

uiimageview を含む viewcontroller を使用してアプリを起動する必要があります。UIImageView の対象となる一連の .png 画像を作成し、 uiimageviewで画像の配列をアニメーション化する方法を確認します。さらに、アニメーションが終わったらそれを却下するには、アニメーションを却下するためにアプリの最初のビューコントローラーを開始することを通知するプロトコルを実装する必要があります

于 2012-10-05T11:21:25.747 に答える
0

はい、AppDelegateクラスでは、次のように最初にimageviewを汚します。

@interface AppDelegate : UIResponder 
{
    UIImageView *splashView;
}

と.mファイルで..。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
    {
        splashView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
        splashView.image = [UIImage imageNamed:@"Default"];
        [self.window addSubview:splashView];

        [self performSelector:@selector(loadViewIphone) withObject:nil afterDelay:2.0];
    } 
    [self.window makeKeyAndVisible];
    return YES;
}

-(void)loadViewIphone 
{
    [splashView removeFromSuperview];
    self.window.rootViewController = self.tabBarController;
    [self.window makeKeyAndVisible];
    CATransition *animation = [CATransition animation];
    [animation setDelegate:self];   
    [animation setType:kCATransitionFade];
    [animation setDuration:0.5];
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:
                                  kCAMediaTimingFunctionEaseInEaseOut]];
    [[self.window layer] addAnimation:animation forKey:@"transitionViewAnimation"];
}

これがお役に立てば幸いです。

:)

于 2012-10-05T11:19:19.717 に答える
0
- (void) welcomeScreen
{

 //Welcome Screen
 UIImageView* welcome = [[[UIImageView alloc] initWithFrame:CGRectMake(0,0,320,480)]autorelease];
 welcome.image = [UIImage imageNamed:@"img.png"];
 [window addSubview:welcome];
 [window bringSubviewToFront:welcome];

 //Animation Effects (zoom and fade)
 [UIView beginAnimations:nil context:nil];
 [UIView setAnimationDuration:2.0];
 [UIView setAnimationTransition:UIViewAnimationTransitionNone forView:window cache:YES];
 [UIView setAnimationDelegate:welcome];
 [UIView setAnimationDidStopSelector:@selector(removeFromSuperview)];

//set transparency to 0.0
 welcome.alpha = 0.0;

//zoom effect
 welcome.frame = CGRectMake(-60, -60, 440, 600);

 [UIView commitAnimations];


}
于 2012-10-05T11:20:38.467 に答える