2017-01-01 3 views
0

J'ai mis à jour xcode de 7.3.1 à 8 et converti en swift 2.2, autre que le storyboard étant un gâchis tout fonctionnait sauf l'ajout d'un UIView par programmation.addSubview ne fonctionne pas après la conversion

Cela fonctionnait bien avant, maintenant rien ne se montre du tout et il n'y a pas d'erreurs. Des idées?

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    //create view 
    let vw = UIView() 
    vw.backgroundColor = UIColor(red: 0.9137, green: 0.9176, blue: 0.9216, alpha: 1.0) /* #e9eaeb */ 

    //create label inside view 
    let label: UILabel = UILabel() 
    label.frame = CGRectMake(0, 0, 200, 28) 
    label.textAlignment = NSTextAlignment.Left 
    label.textColor = UIColor.grayColor() 
    label.font = label.font.fontWithSize(13) 

    if !clearSearch { 
     label.text = " Recent Searches" 
    } else { 
     label.text = " Search Results" 
    } 
    vw.addSubview(label) 

    //create button inside view 
    let button: UIButton = UIButton() 
    button.frame = CGRectMake(self.view.frame.size.width - 45, 0, 40, 28) 
    button.titleLabel?.font = UIFont.systemFontOfSize(13) 
    button.setTitle("Clear", forState: UIControlState.Normal) 
    button.addTarget(self, action: #selector(deleteSearches), forControlEvents: UIControlEvents.TouchUpInside) 
    button.setTitleColor(UIColor(red: 0.3216, green: 0.7176, blue: 0.5333, alpha: 1.0), forState: UIControlState.Normal) 
    vw.addSubview(button) 

    return vw 
} 

Merci pour toute aide.

+0

Tout cela semble bien. Vous devriez vérifier que vw est non-nul à la déclaration de retour (il devrait être), puis vérifier pour voir ce qui se passe dans le code appelant. Je soupçonne que le problème est là. Vous devriez également essayer d'utiliser l'outil Debug-> Voir le débogage-> Afficher la hiérarchie des vues pour voir ce qui se passe. –

+0

Hey, merci pour la réponse rapide. Ouais, on dirait que ce bloc fonctionnel n'est même plus appelé, très étrange, je n'ai rien changé. J'ai aussi essayé le déboguage comme vous l'avez suggéré et il n'apparaît pas là non plus. – user3712837

+0

Compris, a besoin de la heightForHeaderInSection maintenant. – user3712837

Répondre

0

Cela semble maintenant nécessaire.

override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    return 28 
}