3

iOSアプリケーションを起動すると、画面がDefault.pngからインターフェイスにジャンプします。現在のプロジェクトでは、そのDefault.pngからアプリのインターフェースにフェードインしたいと思います。これを行う良い方法はありますか?

4

5 に答える 5

4

私はrooster117とrunmadの答えを少し取り入れましたが、これが私が思いついたものです。

UIImageViewを最初のUIViewControllerのプロパティに追加します。

@interface DDViewController : UIViewController {
   ...
    UIImageView *coverImageView;
}

...

@property (nonatomic, retain) UIImageView *coverImageView;

次に、iPadアプリの「ホーム画面」について、次のように呼びます。

- (void)viewDidLoad
{
    [super viewDidLoad];

    ...

    coverImageView = [[UIImageView alloc] init];
}

-(void)viewWillAppear:(BOOL)animated {
    UIImage *defaultImage;   
    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)) {
        NSLog(@"Landscape!");
        defaultImage = [UIImage imageNamed:@"Default-Landscape.png"];
    } else {
        NSLog(@"Portrait!");
        defaultImage = [UIImage imageNamed:@"Default-Portrait.png"];
    }

    coverImageView = [[UIImageView alloc] initWithImage:defaultImage];
    [self.view addSubview:coverImageView];

}

-(void)viewDidAppear:(BOOL)animated {
    //Remove the coverview with an animation
    [UIView animateWithDuration:1.0f animations:^(void) {
        [self.coverImageView setAlpha:0.0];
    } completion:^(BOOL finished){
        [coverImageView removeFromSuperview];
    }];
}
于 2012-07-03T18:47:28.587 に答える
2

ええ、これはそれほど難しいことではありません。これは、デフォルトの画像を使用して画像ビューを作成し、それをアニメーション化することで実現します。このようなもの(最初のView ControllerのviewDidLoadに入れます):

_coverImage = [UIImage imageNamed:@"Default.png"];
}

[self.view addSubview:_coverImage];

[UIView beginAnimations:@"FadeOutCover" context:nil];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(removeAndDeleteCover)];

[_coverImage setAlpha:0.0f];

[UIView commitAnimations];

次に、removeAndDeleteCoverを実装して、次の手順を実行します。

[_coverImage removeFromSuperview];

それがお役に立てば幸いです。iPadでユニバーサルアプリとして機能する必要がある場合は、そのケースを確認し、適切なデフォルトの画像を追加する必要があります。

于 2012-07-03T17:50:28.377 に答える
0

誰かがcocoacontrols.comでそれを制御しました

これへのリンクは次のとおりです:http://cocoacontrols.com/platforms/ios/controls/launchimagetransition

于 2012-07-03T18:17:08.597 に答える
0

rooster117の答えを拡張すると、「スプラッシュスクリーン」ビューコントローラーを閉じる前に、最終的な「着陸場所」、つまりユーザーが実際に操作するビューコントローラーを適切にロードする必要があります。これは、ネットワークからデータを読み込むアプリにとって非常に重要です。

于 2012-07-03T18:48:11.930 に答える
0

私はこれをios7でこのように行ったようですが、6でも機能するはずだと思いますか?

https://stackoverflow.com/a/19377199/1734878

于 2013-10-15T09:09:47.880 に答える