2017-06-28 3 views
1

Ich gebe eine Ansicht mit dynamischer Höhe für viewForHeader in table views zurück. Ich habe 2 section.But ich bekomme eine Ansicht, die für Header-Abschnitt 1 in Abschnitt 0 ist und für Abschnitt 1 keine Ansicht wird kommen Leerzeichen wird kommen der Code.viewForHeader mit dynamischer Höhe?

 tblList.estimatedSectionHeaderHeight = 100 
     tblList.sectionHeaderHeight = UITableViewAutomaticDimension 


     func numberOfSections(in tableView: UITableView) -> Int { 
      return 2 
     } 

     func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
     print("Section: \(section)") 
      let view = UIView() 
      let lbl = UILabel() 
      view.backgroundColor = UIColor.LGColor() 

      view.translatesAutoresizingMaskIntoConstraints = false 
      lbl.translatesAutoresizingMaskIntoConstraints = false 
      view.addSubview(lbl) 
      lbl.font = UIFont.subHeadline 

      view.addConstraint(NSLayoutConstraint(item: lbl, attribute: .top, relatedBy: .equal, toItem: view, attribute: .top, multiplier: 1, constant: 3)) 

      view.addConstraint(NSLayoutConstraint(item: lbl, attribute: .leading, relatedBy: .equal, toItem: view, attribute: .leading, multiplier: 1, constant: 10)) 

      view.addConstraint(NSLayoutConstraint(item: lbl, attribute: .trailing, relatedBy: .lessThanOrEqual, toItem: view, attribute: .trailing, multiplier: 1, constant: -10)) 

      view.addConstraint(NSLayoutConstraint(item: lbl, attribute: .height, relatedBy:.greaterThanOrEqual, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 21)) 

      view.addConstraint(NSLayoutConstraint(item: view, attribute: .bottom, relatedBy: .equal, toItem: lbl, attribute: .bottom, multiplier: 1, constant: 3)) 


    view.addConstraint(NSLayoutConstraint(item: view, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: tableView.frame.size.width)) 

     if section == 0 { 
      view.backgroundColor = .red 
     } else { 
      view.backgroundColor = .yellow 
     } 
     return view 
} 

Antwort

1

Es ist, weil Sie view.translatesAutoresizingMaskIntoConstraints = false gesetzt, diese Zeile kommentieren und prüfen Sie, ob Sie beide Abschnitte sehen

1

Es passiert ist, weil Sie translatesAutoresizingMaskIntoConstraints = false für Header-Ansicht verwenden, entfernen Sie diese Zeile

Seine entfernen Einschränkungen erstellt in TableView und zwei Ansichten haben Herkunft point {0, 0}

enter image description here

Verwandte Themen