60 votes

définir l'image de fond pour toute l'application iPhone / iPad

J'ai une seule image que je veux comme arrière-plan pour mon application, quel que soit le contrôleur de vue sur lequel ils se trouvent. Comment y parvenir?

91voto

sudo rm -rf Points 19115

Voici comment définir un arrière-plan pour une image:

 self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Background.png"]];
 

Edit: Pour écrire ce que Felixyz a dit (et grâce à Manni), faites ceci dans votre délégué:

 window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Background.png"]];
 

Et dans chaque vue que vous voulez avoir l'image, procédez comme suit:

 self.view.backgroundColor = [UIColor clearColor];
 

8voto

Felixyz Points 10705

Cela dépend de votre type d'interface. Onglet? Basé sur la navigation? Mais la réponse générale est la suivante: ajoutez un UIImageView à votre UIWindow avant / en dessous de votre vue principale. Ensuite, faites en sorte que chaque vue gérée par votre contrôleur de vue principale ait un arrière-plan transparent. Difficile de donner des conseils plus spécifiques sans savoir si vous utilisez IB ou non, ni à quoi ressemble votre hiérarchie.

8voto

Manni Points 4213

Dans mon application, je définis une couleur d'arrière-plan par défaut. Peut-être que vous pouvez le faire avec votre image de fond:

1 .: Définissez la couleur d’arrière-plan de votre UIWindow dans votre AppDelegate:

 window.backgroundColor = [UIColor myBackgroundGray]; // own Category
 

2 .: Et maintenant, rendez toutes les autres vues transparentes:

 self.view.backgroundColor = [UIColor clearColor]; // = transparent
 

7voto

Anas10 Points 464

Dans votre AppDelegate en

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

Ajouter cette ligne:

 [self.window setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]];
 

Une fois que vous avez juste à définir les fonds de vos vues sur [UIColor clearColor];

3voto

Andrew Theken Points 1534

Je ne suis pas sûr des implications en termes de performances, mais je devais accomplir quelque chose de similaire et j'ai fini par utiliser un UIImageView qui fonctionne bien (en C #, mais fonctionne de la même manière en obj-c):

 //Add the view controller first, to ensure proper order of views later.
Window.RootViewController = new UIViewController();

//create backdrop image view
var imageView = new UIImageView(Window.Bounds);
imageView.Image = UIImage.FromBundle("backdrop.jpg");

//insert into window.
Window.InsertSubview(imageView, 0);
 

Cela ne gère pas les changements d'orientation, mais dans mon cas, cela m'a permis d'ajouter des effets de mouvement à la toile de fond (comme la parallaxe).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X