Comment append la bordure inférieure à l'en-tête de la section tableview

J'utilise la fonction suivante pour déterminer l'en-tête de la section tableview dans mon application:

override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?{ var title: UILabel = UILabel() title.text = "something" // Add a bottomBorder var border = UIView(frame: CGRectMake(0,0,self.view.bounds.width,1)) border.backgroundColor = UIColor.redColor() title.addSubview(border) } 

et la section suivante pour déterminer la hauteur de l'en-tête de la section tableview:

 override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 

Comment puis-je append une bordure inférieure à la section?

Vous pouvez créer UIView qui agira comme une bordure et ensuite l'append:

 var border = UIView(frame: CGRectMake(0,40,self.view.bounds.width,1)) border.backgroundColor = UIColor.redColor() headerView.addSubview(border) 

headerView est votre vue personnalisée que vous créez réellement

MODIFIER

  var headerView = UIView(frame: CGRectMake(0,0,self.view.bounds.width,40)) var title = UILabel(frame: CGRectMake(0, 0, 200, 21)) title.text = "something" // Add a bottomBorder var border = UIView(frame: CGRectMake(0,39,self.view.bounds.width,1)) border.backgroundColor = UIColor.redColor() headerView.addSubview(border) headerView.addSubview(title) return headerView 

Swift 3

Cela a fonctionné pour moi. Dans viewForHeaderInSection:

  let headerView = UIView() let borderTop = UIView(frame: CGRect(x:0, y:0, width: tableView.bounds.size.width, height: 1.0)) borderTop.backgroundColor = UIColor.self.init(red: 5/255, green: 16/255, blue: 28/255, alpha: 1.0) headerView.addSubview(borderTop) let borderBottom = UIView(frame: CGRect(x:0, y:40, width: tableView.bounds.size.width, height: 1.0)) borderBottom.backgroundColor = UIColor.self.init(red: 5/255, green: 16/255, blue: 28/255, alpha: 1.0) headerView.addSubview(borderBottom) 

Vous pouvez ajuster la position du haut et du bas en fonction de votre en-tête haut. y = 0 pour le haut et x = 40 pour la bordure inférieure fonctionne pour moi. Espère que cela aide. Bonne chance.

Si vous voulez personnaliser le rest de l'en-tête:

  let headerLabel = UILabel(frame: CGRect(x: 15, y: 9, width: tableView.bounds.size.width, height: tableView.bounds.size.height)) headerLabel.font = UIFont(name: "Trebuchet MS", size: 19) headerLabel.textColor = UIColor.self.init(red: 254/255, green: 170/255, blue: 25/255, alpha: 1.0) headerLabel.text = self.tableView(self.tableView, titleForHeaderInSection: section) headerLabel.sizeToFit() headerView.addSubview(headerLabel)