2015-02-19 15 views
8

Nel mio willDisplayHeaderView ho cambiato il colore dell'intestazione della sezione Ma voglio aggiungere un'immagine prima del titolo della sezione. Qualsiasi aiuto? Il mio codice per willDisplayHeaderView èCome possiamo aggiungere un'immagine nell'intestazione della sezione UITableView usando swift?

func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) { 
    let header: UITableViewHeaderFooterView = view as UITableViewHeaderFooterView 
    header.contentView.backgroundColor = UIColor(red: 238/255, green: 168/255, blue: 15/255, alpha: 0.8) 
    header.textLabel.textColor = UIColor.whiteColor() 
    header.alpha = 1 
} 

risposta

8

Si potrebbe progettare il proprio colpo di testa, come si progetta una cella personalizzato in una vista tabella. Oppure si può semplicemente aggiungere un'immagine in questo modo:

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 

    var myCustomView: UIImageView 
    var myImage: UIImage = UIImage(named: "myImageResource") 
    myCustomView.image = myImage 

    let header: UITableViewHeaderFooterView = view as UITableViewHeaderFooterView 
    header.addSubview(myCustomView) 
    return header 
} 

allora si può semplicemente aggiungere il titolo della sezione UILabel come un'altra visualizzazione secondaria.

+3

let intestazione: UITableViewHeaderFooterView = vista come UITableViewHeaderFooterView Questo semplicemente non funziona qui ... – Mikael

3

Ecco come è possibile aggiungere un'intestazione personalizzata in UITableView.

func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) { 
    let header: UITableViewHeaderFooterView = view as UITableViewHeaderFooterView 
    let imageViewGame = UIImageView(frame: CGRectMake(5, 8, 40, 40)); 
    let image = UIImage(named: "Games.png"); 
    imageViewGame.image = image; 
    header.contentView.addSubview(imageViewGame) 
} 
6

Basta aggiungere il seguente codice nel metodo viewDidLoad().

var frame = CGRectMake(0, 0, self.view.frame.size.width, 200) 
    var headerImageView = UIImageView(frame: frame) 
    var image: UIImage = UIImage(named: "yourImage")! 
    headerImageView.image = image 
    youTableView.tableHeaderView = headerImageView 
3

Io uso questo metodo di seguito nel mio proj.

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? 
{ 
    let uilbl = UILabel() 
    //uilbl.numberOfLines = 0 
    //uilbl.lineBreakMode = NSLineBreakMode.ByWordWrapping 
    //uilbl.text = "blablabla" 
    uilbl.sizeToFit() 
    uilbl.backgroundColor = UIColor(patternImage: UIImage(named: "yr-img-name")!) 

    return uilbl 
} 
4

Per Swift 3

override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) { 
    let header = view as! UITableViewHeaderFooterView 
    header.textLabel?.textColor = UIColor.white 
    let headerImage = UIImage(named: "headerBanner.jpg") 
    let headerImageView = UIImageView(image: headerImage) 
    header.backgroundView = headerImageView 
} 
0

Ciò funzionerà con rapida 4

override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    let headerImage: UIImage = UIImage(named: "image")! 
    let headerView = UIImageView(image: headerImage) 
    return headerView 
} 
Problemi correlati