2015-07-28 16 views
5

Ho un piccolo problema: mi piacerebbe impostare un'immagine sullo sfondo in un TableViewController. Ho provato questo:TableView con sfondo dell'immagine e effetto sfocato - rapido

class SquadreController: UITableViewController { 

    override func viewDidLoad() 
    { 
     super.viewDidLoad() 

     var sfondo = UIImage(named: "sfondo") 
     self.view.backgroundColor = UIColor(patternImage: sfondo!) 

    } 

Poi mi danno l'effetto di sfocatura alla vista, in questo modo:

let blur = UIBlurEffect(style: UIBlurEffectStyle.Light) 
let blurView = UIVisualEffectView(effect: blur) 
blurView.frame = self.view.bounds 
view.addSubview(blurView) 

Ma c'è un grosso problema. Sto lavorando su TableView e TableView, TableCell, NavigationItem, ecc. Sono scomparsi dopo aver applicato la sfocatura. Qualcuno può aiutarmi?

Grazie mille!

+1

Come su view.insertSubView (blurView, atIndex: 0) –

+0

Sei riuscito a risolvere il problema? –

risposta

7

Provate ad usare view.insertSubView(blurView, atIndex: 0) invece di view.addSubview(blurView) as! UIImageView

+0

ahahahah sei un genio, o sono uno stupido XD grazie mille, e buonanotte (sono italiano) !!! –

+0

Nel mio caso, 'self.tableView.backgroundView! .addSubview (blurView)' ha fatto il trucco invece di 'view.insertSubView (blurView, atIndex: 0)' – cdf1982

0

Possiamo anche aggiungere una visualizzazione secondaria di sotto o al di sopra qualsiasi altro viste utilizzando insertSubview

//Inserting below your subView 
self.view.insertSubview(subview1_name, belowSubview: subview2_name) 

//Inserting above your subView 
self.view.insertSubview(subview1_name, aboveSubview: subview2_name) 

/// You can use any of your view, instead of self.view 
0

Questa domanda è una domanda più vecchio e la risposta di Epic Defeater fa in un modo di lavorare , c'è un modo molto migliore per farlo. Invece di aggiungere blurView, è necessario sovrascrivere la vista di sfondo. In particolare è necessario eseguire l'override di tableView.backgroundView.

let blur = UIBlurEffect(style: .light) 
let blurView = UIVisualEffectView(effect: blur) 
blurView.frame = self.view.bounds 
tableView.backgroundView = blurView 

questo funziona solo se è stato impostato il colore di sfondo per cancellare.