Ho una singola immagine che voglio come sfondo per la mia app indipendentemente dal viewcontroller su cui si trovano - come si ottiene?imposta l'immagine di sfondo per l'intera app per iPhone/iPad
risposta
Ecco come si imposta uno sfondo a un'immagine:
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Background.png"]];
Edit: di scrivere ciò che ha detto Felixyz (e grazie a Manni), farlo nel vostro delegato:
window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Background.png"]];
E in ogni vista che si desidera avere l'immagine, fare questo:
self.view.backgroundColor = [UIColor clearColor];
Dipende dal tipo di interfaccia che hai. A schede? Basato sulla navigazione? Ma la risposta generale è: aggiungi UIImageView al tuo UIWindow prima/sotto la tua vista principale. Quindi fai in modo che ogni vista gestita dal controller della vista principale abbia uno sfondo trasparente. Difficile dare consigli più specifici senza sapere se si usa IB o no, o come si presenta la gerarchia della vista.
navigazione basato, in modo da visualizzare i controllori sono spinti e spuntato lo sfondo rimane – Slee
Combinando sudo e di suggerimenti di Manni lo rende facile da realizzare quello che vi serve: impostare la backgroundColor sulla finestra per essere un'immagine (colorWithPatternImage :) e rendere backgroundColor sul controller di navigazione e tutti i suoi sub-controller trasparenti. Potrebbe essere necessario impostare opaque = NO anche su di essi. Tieni presente che ciò potrebbe influire sulle prestazioni durante le animazioni, ma non dovrebbe essere un problema sui dispositivi più recenti. – Felixyz
Nella mia app, ho impostato un colore di sfondo predefinito. Forse si può fare questo è immagine di sfondo con:
1 .: Impostare il colore del vostro UIWindow sfondo nel AppDelegate:
window.backgroundColor = [UIColor myBackgroundGray]; // own Category
2 .: E ora, fare tutte le altre viste trasparente:
self.view.backgroundColor = [UIColor clearColor]; // = transparent
Questo causa un problema quando si presentano i presentatori modali con l'animazione. È possibile visualizzare i controlli dalla vista modale e dalla vista esistente e quindi la vista esistente scompare. –
Lo sfondo è una proprietà di qualsiasi oggetto che eredita la vista. Etichette, pulsanti, controller e la finestra dell'app, ad esempio, hanno tutti gli sfondi. Se vuoi che diventi completamente un bg per l'intera app, devi scalare il percorso dei tuoi controller per trovare la vista "top" (vista dal basso) e impostare il suo sfondo come l'immagine che desideri.
Nella tua AppDelegate in
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Aggiungere questa riga:
[self.window setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]]];
Dopo devi solo impostare le visualizzazioni sfondi per [UIColor clearColor];
Non sono sicuro delle implicazioni sulle prestazioni, ma avevo bisogno di realizzare qualcosa di simile, e ho finito per usare un UIImageView che funziona bene (in C#, ma funziona allo stesso modo in 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);
Questo non gestisce i cambiamenti di orientamento, ma nel mio caso, mi ha permesso di aggiungere effetti di movimento sullo sfondo (come la parallasse).
Di solito uso questa funzione per evitare sovrapposizioni con la barra di navigazione su iphone.
-(void)setImageBackground:(NSString*)imageName{
UINavigationController* navigationController = [self navigationController];
float height = navigationController.toolbar.frame.size.height;
CGSize size = self.view.frame.size;
size.height = size.height;
UIGraphicsBeginImageContext(size);
CGRect bounds = self.view.bounds;
bounds.origin.y = bounds.origin.y + height;
bounds.size.height = bounds.size.height-height;
[[UIImage imageNamed:imageName] drawInRect:bounds];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.view.backgroundColor = [UIColor colorWithPatternImage:image];
}
basta chiamare questo assignbackground
in viewDidLoad
override func viewDidLoad() {
assignbackground()
}
func assignbackground(){
let background = UIImage(named: "background")
var imageview : UIImageView!
imageview = UIImageView(frame: view.bounds)
imageview.contentMode = UIViewContentMode.ScaleAspectFill
imageview.clipsToBounds = true
imageview.image = background
imageview.center = view.center
view.addSubview(imageview)
self.view.sendSubviewToBack(imageview)
}
- 1. Imposta colore/immagine di sfondo per EKEventEditViewController
- 2. Imposta sfondo di ToastNotification
- 3. Imposta un colore di sfondo per una sezione UICollectionView?
- 4. Come si imposta lo sfondo di UIScrollView per essere trasparenti?
- 5. Imposta l'immagine di sfondo per il colore del carattere?
- 6. Imposta un video come sfondo
- 7. Imposta sfondo schermata iniziale
- 8. Imposta sfondo widget di colore
- 9. Imposta sfondo nullo
- 10. Imposta colore di sfondo: opposto di -transparent
- 11. CSS: imposta l'immagine di sfondo con opacità?
- 12. Imposta immagini di sfondo caricate dal disco
- 13. Imposta sfondo di JComboBox in Swing
- 14. Android - SimpleCursorAdapter.ViewBinder - Imposta colore di sfondo
- 15. Sfondo animato - "Imposta sfondo" - È necessario un evento da utilizzare per cancellare la memoria
- 16. posizione sfondo per il colore di sfondo
- 17. Sfondo trasparente per WKWebView
- 18. Imposta stranezze per WebView
- 19. iOS imposta il colore di sfondo per tutti i viewcontroller di self.view
- 20. Ripristina stack di app Android da sfondo
- 21. Impostazione del colore di sfondo per SKLabelNode?
- 22. Imposta zoom per Webview
- 23. Imposta animata .GIF come sfondo Android
- 24. Imposta Canvas.Top per UserControl
- 25. imposta errormessage per customvalidator?
- 26. Imposta cartella per classpath
- 27. App Android Sfondo: l'utilizzo di più immagini
- 28. Swift + NSViewController colore di sfondo (App Mac)
- 29. Video come immagine di sfondo app ionica
- 30. Imposta timeout per webClient.DownloadFile()
Ho finito per usare UIImageView sul pennino della finestra principale e UIColor clearColor sulle mie viste. Si noti che l'uso di colorWithPatternImage come si è detto sopra ha fatto passare la memoria da 1,7 M a 9,5 M quando l'app viene caricata per la prima volta - colorWithPatternImage sembra consumare solo una tonnellata di memoria. – Slee
Si consiglia di preparare 3 file png per l'app universale, ad esempio Background.png, [email protected], Background ~ iPad.png e impostare lo sfondo utilizzando il codice seguente: self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @ "Background"]]; iOS seleziona il file png corretto a causa della categoria del dispositivo. Spero che questo aiuto. – ZYiOS
Ho provato l'approccio di cui sopra in un'applicazione basata su UINavigation. Il problema con questo approccio è che l'impostazione di un'immagine su window.background imposta correttamente l'immagine, ma rendendo l'altra vista trasparente il colore è negativo come durante la visualizzazione push o pop sovrapponendo puoi vedere le viste inserite nello stack. Qualsiasi idea di come risolverlo – Shekhu