2012-07-31 100 views
-1

我看到了不同的应用程序,每次在视图背景上打开应用程序时,图像都会发生变化。这是如何完成的?适用于iOS应用程序背景的多个图像

+0

你的意思是“应用程序在视图背景上打开”是什么意思?安装应用程序后无法更改启动图像。你的意思是别的吗?你能举一个你想要的应用程序的例子吗? – Jim 2012-07-31 18:43:55

+0

每次打开应用程序时,视图背景的图像都会更改。 FHU Mobile就是这样做的。 – user717452 2012-07-31 18:54:40

回答

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方法中的通知,并且应该设置。

+0

为什么这样做得到了降低。回答这个问题的详细情况 – AppHandwerker 2012-07-31 21:24:43

+0

不知道......不是我投票的结果......可能是Jim或Teodor,因为他们仍然不明白这个问题。 – user717452 2012-07-31 22:00:33

+0

是你要找的答案吗?请接受,如果它是。如果它不是那么也可以说的路,我会尝试修复它。 – AppHandwerker 2012-08-01 07:26:39

0

查看您提到的应用程序的App Store中的屏幕截图,看起来好像主菜单的视图层次结构后面只有一个UIImageView。您可以通过将UIImage对象分配给其image属性来更改此对象。

+0

是的,我知道如何设置背景图片。但是,他们的背景图像会定期变化。 – user717452 2012-07-31 19:01:33

+0

我真的不知道你在问什么。如果你知道如何改变图像,那么什么阻止你改变它? – Jim 2012-07-31 19:08:37

+0

@TeodorCarstea您的评论将被标记为无用。在应用程序中,下载它之后,它将显示一个图像作为标签栏控制器的背景。稍后,您可能会再次启动应用程序,现在背景不同。这就是我想要做的,不只是改变它一次,并重新提交二进制文件 – user717452 2012-07-31 20:03:03

0

假设您想要更改一个或多个视图的背景图像,具体取决于应用程序启动。

int x = 0保存到NSUserDefaults中。在每个应用程序的启动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 
} 
1

这听起来像你所看到的是iOS系统在将它放入背景之前对你的应用程序进行的缓存截图。

这是自动处理的,你有机会截获这个。

看看这个答案,你可以在你的应用程序上放置一个图像,就像它进入后台一样,这将被缓存并用于重新启动应用程序。