2016-12-27 3 views
0

Я фактически использую представление таблицы для отображения некоторых данных, и я переопределяю willDisplayHeaderView, чтобы добавить пользовательский стиль для заголовка. Все работает отлично, за исключением того, что я не могу изменить цвет фона заголовка заголовка. Вот мой код:Как сделать прозрачным заголовок заголовка tableview en swift ios

override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) 
{ 
    view.backgroundColor = UIColor.clear 
    let title = UILabel() 
    title.font = UIFont(name: "System", size: 22) 
    title.textColor = UIColor(rgba: "#BA0B23") 
    title.backgroundColor = UIColor.clear 

    let header = view as! UITableViewHeaderFooterView 
    header.textLabel?.font=title.font 
    header.backgroundColor = UIColor.clear 
    header.textLabel?.textColor=title.textColor 
    header.textLabel?.textAlignment = NSTextAlignment.center 
    let sepFrame = CGRect(x: 0, y: header.frame.size.height-1, width: header.frame.size.width, height: 1) 
    let seperatorView = UIView(frame: sepFrame) 
    seperatorView.backgroundColor = UIColor(rgba: "#BA0B23") 
    header.addSubview(seperatorView) 
} 

Я не знаю, что я делаю неправильно, некоторая помощь будет оценена. Спасибо

ответ

1

Думаю, вам стоит сфокусироваться на использовании viewForHeaderInSection, а не willDisplayHeaderView. Вот что я хотел бы сделать:

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

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    headerView.backgroundColor = UIColor.clearColor() 

    let title = UILabel() 
    title.font = UIFont(name: "System", size: 22) 
    title.textColor = UIColor(rgba: "#BA0B23") 
    title.backgroundColor = UIColor.clear 

    headerView.textLabel?.font = title.font 
    headerView.backgroundColor = UIColor.clear 
    headerView.textLabel?.textColor = title.textColor 
    headerView.textLabel?.textAlignment = NSTextAlignment.center 
    headerView.addsubView(title) 

    return headerView; 
} 

надежду, что помогает

+0

Как вы это делаете, чтобы получить 'headerView'? – Snoobie

0

В раскадровку можно взять вид ячейки таблицы, дайте свой собственный tableViewCell класс, а затем настроить ячейку в соответствии с дизайном, а затем в вашем вы можете вернуть эту ячейку

public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?{ 
      let cell:CustomHeaderTableViewCell = self.tableView.dequeueReusableCell(withIdentifier: "header") as! CustomHeaderTableViewCell 
      let title = uniqueOrders.arrOrders[section] as? String 
      cell.lblHeaderTitle.text = "Order Id-\(title!)" 
      return cell 
     } 


func numberOfSections(in tableView: UITableView) -> Int{ 
     return uniqueOrders.arrOrders.count 
    } 

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int{ 
     return self.array[section].count 
    } 

    func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { 
     return "Order Id- \(uniqueOrders.arrOrders[section])" 
    } 
+0

Как вы это сделаете, чтобы получить прозрачный фон для заголовка заголовка uitableview? – Snoobie

+0

вы можете сделать это в файле story board .... В ячейке просмотра заголовка вы можете взять ярлык для отображения заголовка заголовка и установить его цвет фона по вашему выбору. – rohit

+0

Чтобы установить заголовок в коде, вы можете сделать вывод метки и установить его так: cell.lblHeaderTitle.text = "Идентификатор заказа - \ (название!)". как показано в моем ответе – rohit