-1

ビューの背景でアプリを開くたびに画像が変わるさまざまなアプリを見てきました。これはどのように達成されますか?

4

4 に答える 4

1

あなたが見ているのは、iOSシステムがアプリをバックグラウンドに置く直前に作成しているキャッシュされたスクリーンショットのようです。

これは自動的に処理され、これを傍受する機会があります。

この回答を確認してください。背景に入るときに画像をアプリの上に置くことができます。これはキャッシュされ、アプリの再起動に使用されます。

于 2012-07-31T19:37:58.480 に答える
0

あなたが言及したアプリケーションのAppStoreのスクリーンショットを見るとUIImageView、メインメニューのビュー階層の後ろにあるように見えます。UIImageこれを変更するには、オブジェクトをそのimageプロパティに割り当てます。

于 2012-07-31T19:00:07.457 に答える
0

アプリケーションの起動に応じて、1つまたは複数のビューの背景画像を変更するとします。

int x = 0NSUserDefaultsに保存します。アプリケーションを起動するたびに、1ずつインクリメントします。ビューを表示する場合は、そのintを確認し、次のように背景画像を設定します。

switch(x%3){// %3 just to make it a bit random
   case 0://set this image; 
         break;
   case 1://set that image
         break;
      //and so on
}
于 2012-07-31T19:12:42.700 に答える
0

プロジェクトにbackground_0.png、background_1.png、background_2.png、background_3.pngなどを追加します。

#define max_image_number 3

viewDidLoadメソッドに以下を追加します。

-(void)viewDidLoad {  
    [super viewDidLoad];
    [self updatedBackgroundImage];
   [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateBackgroundImage) name:UIApplicationWillEnterForegroundNotification object:nil];
}

-(void) updateBackgroundImage{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    if (![defaults integerForKey:@"imageNumber"]) {
                [defaults setInteger:0 forKey:@"imageNumber"];
            }

            int i = [defaults integerForKey:@"imageNumber"];

            myUIimageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"background_%d.png",i]];
            i++;

            if (i > max_image_number) {
                [defaults setInteger:0 forKey:@"imageNumber"];

           }else{
                [defaults setInteger:i forKey:@"imageNumber"];
            }
    ...

    }

上記は、viewControllerが最初にロードされたとき、およびバックグラウンドでの実行から戻ったときにイメージを更新します。私はこれがあなたにとって欠けていたものだと思います:)。

viewDidUnloadメソッドで通知のリッスンを停止することを忘れないでください。設定する必要があります。

于 2012-07-31T19:33:24.077 に答える