2014-06-28 28 views
21

Sto utilizzando UITableView in un'applicazione rapida e utilizzando il mio UITableViewCell personalizzato.Impossibile nascondere le celle vuote in UITableView Swift

Quando si tenta di nascondere le celle vuote in UITableView, ha ancora lo sfondo bianco.

Sotto UITableView ho un'immagine di sfondo (UImageView).

I'v già cercare di nascondere quelle cellule, e in realtà sono nascosti, ma ho ancora uno sfondo bianco, utilizzando questo codice:

override func viewDidLoad() { 
    super.viewDidLoad() 
    var tblView = UIView(frame: CGRect(x: 0,y: 0,width: 0,height: 0)) 
    tblView.backgroundColor = UIColor.clearColor() 
    tableView.tableFooterView = tblView 

    var nipName=UINib(nibName: "CustomCell", bundle:nil) 
    self.tableView.registerNib(nipName, forCellReuseIdentifier: "CustomCell") 
} 

risposta

25

ecco la soluzione:

tableView.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 0)) 
tableView.tableFooterView?.isHidden = true 
tableView.backgroundColor = UIColor.clear 
+1

'UIView non ha un membro chiamato 'hidden'' e quella linea non è comunque necessaria. – thefoyer

+0

tableFooterView è opzionale, quindi utilizzare? e funziona – derdida

30

una soluzione più pulita è: è necessaria

tableView.tableFooterView = UIView(frame: CGRectZero) 

Nient'altro.

+1

@ user3210784 Credo che forse questa deve essere la risposta accettata in quanto fa il lavoro con molto meno codice rispetto alla risposta accettata? –

+0

risposta assolutamente corretta. Una piccola aggiunta: è necessario menzionare l'IBOutlet per tableView per farlo funzionare. – pulp

0

Un'altra soluzione più semplice per questo problema è impostare lo sfondo con un'immagine per il tuo tavoloView.The immagine deve essere semplice bianco se hai solo bisogno di uno sfondo bianco per le celle non di dati o è possibile impostare l'immagine personalizzata pure per dati vostra Tableview background.So con le cellule avrebbero sfondo normale e per la cella non dati che mostrano l'immagine di sfondo:

self.tableViewName.backgroundColor = UIColor (patternImage: UIImage(named: 
"imageName.jpg")!) 
0

uno di questi lavoro per me in Swift 3,0

Metodo - 1

let footerView = UIView(frame: CGRect.zero) 
tableView.tableFooterView = footerView 
tableView.tableFooterView?.isHidden = true 
tableView.backgroundColor = UIColor.clear() 

Metodo - 2

tableView.tableFooterView = UIView(frame: CGRect.zero) 
3

SWIFT 3

tableView.tableFooterView = UIView (struttura: .zero)

0

Swift 3: Il modo più semplice

tableView.tableFooterView = UIView() 
Problemi correlati