0

Default.png という名前のファイルがある場合、画像が自動的に表示されます。しかし、私はそれが表示されている間に画像を変更したい. 参考までに、Default.png と default2.png の 2 つの画像があります。Default.png を表示した後に default2.png を表示したい。次のコードを試しましたが、うまくいきませんでした。どうすればいいですか?

-(BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

//..................................................................
//self.window bullabulla~

[self performSelectorOnMainThread:@selector(showIntro2View) withObject:nil waitUntilDone:YES];
//[self showIntro2View];  //also tried this, but not work.

[self.window addsubview:tabbarController];
[self.window makeKeyAndVisible];
}
-(void) showIntro2View {
UIImageView *intro2 = [[UIImageView alloc]initwithframe:cgrectmake(0,0,320,460)];
intro2.image = [UIImage imagenamed:@"default2.png"];
[self.window addSubview:intro2];
[self.window bringSubviewToFront:intro2];
[NSThread sleepfortimeinterval:2];
}
4

3 に答える 3

1

あなたのAPP DELEGATE。このようなものが仕事をするはずです:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    UIImageView *imageView = [[[UIImageView alloc] initWithFrame:self.window.bounds] autorelease];
    UIImage *image = [UIImage imageNamed:@"NAMEOFYOURSPLASHSCREEN.png"];
    imageView.image = image;
    [self.window addSubview:imageView];
    [self.window makeKeyAndVisible];
    [self performSelector:@selector(remove1stSplash:) withObject:imageView afterDelay:5];
    return YES;
}

- (void)remove1stSplash:(UIImageView *)1stView {
    UIImageView *imageView = ...
    [self.window addSubview:imageView];
    [self performSelector:@selector(remove2ndSplash:) withObject:imageView afterDelay:5];
    [1stView removeFromSuperView];
}

- (void)remove2ndSplash:(UIImageView *)2ndView {
    [self.window addSubview:.....
    [2ndView removeFromSuperView];
}

編集:

サンプル プロジェクトへのリンク: iPhone での 2 つのスプラッシュ スクリーン表示

于 2012-07-24T09:32:39.170 に答える
0

これを行う:

 -(void) showIntro2View 
{
  UIImageView *intro2 = [[UIImageView alloc]initwithframe:cgrectmake(0,0,320,460)];
  intro2.image = [UIImage imagenamed:@"default2.png"];
  intro2.animationImages = [NSArray arrayWithObjects:    
                           [UIImage imageNamed:@"Default.png"],
                           [UIImage imageNamed:@"default2.png"], nil];
  intro2.animationDuration = 2.0f;
  intro2.animationRepeatCount = 0;
  [intro2 startAnimating];

  [self.window addSubview:intro2];
  [self.window bringSubviewToFront:intro2];
  [NSThread sleepfortimeinterval:2];
}
于 2012-07-24T09:41:20.030 に答える
0

ご存知かもしれませんが、Default img が表示される時間に実際に影響を与えることはありません。しかし、それがいつ表示され、いつ非表示になるかはわかっています。アプリが初めて実行されたときにのみ、アプリがバックグラウンドにないか、しばらく使用しないと終了したことが示されます。

呼び出される最初のView ControllerはviewWillAppear、デフォルトの画像が非表示になる前に呼び出される最後のメソッドのようなものであるため、実装する必要があります。すべてがロードされ、すぐにサブビューをメイン ウィンドウに追加できます。

と のような 2 つの異なる方法でshowOverrideDefaultImage行いhideOverrideDefaultImageます。show メソッドで、独自のビューを appDelegate ウィンドウに追加し、

[self performSelector:@selector(hideOverrideDefaultImage) withObject:nil afterDelay:2];

hide メソッドでは、ビューをスーパービューから削除するだけです。したがって、このオブジェクトへの有効なポインターが必要です。

それでおしまい。NSThread を使用しないでください。

于 2012-07-24T09:31:17.717 に答える