Ich habe eine Tabellenansicht in Swift mit Headern, die Zellen erweitern oder kontrahieren, aber aus irgendeinem Grund gibt es zusätzliche Zeilentrenner in der Mitte der Seite ohne Grund und die Bezeichnung in Der Header wird nicht angezeigt.TableView Display Issues - Swift
class ExpandableHeader: UITableViewHeaderFooterView {
var section: Int = 0
let expandLabel = UILabel()
}
func numberOfSections(in tableView: UITableView) -> Int {
// return number of section in table from data
return list.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// return number of rows in each section from data
return list[section].items.count + 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// Create cell with the identifier which was set in the storyboard prototype cell
// set cell data/name from our data object
if indexPath.row < list[indexPath.section].items.count {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = list[indexPath.section].items[indexPath.row].name
return cell
} else {
let cell = tableView.dequeueReusableCell(withIdentifier: "custom", for: indexPath)
return cell
}
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
// create a header of type of our subclassed header with section number
let headerView = ExpandableHeader()
headerView.expandLabel.text = "+"
headerView.expandLabel.frame.size.height = 30
headerView.expandLabel.frame.size.width = 30
headerView.expandLabel.textAlignment = NSTextAlignment.center
headerView.addSubview(headerView.expandLabel)
headerView.expandLabel.frame.origin.x = view.frame.maxX - headerView.expandLabel.frame.width
// assign selected/current section number to the header object
headerView.section = section
// create Gesture Recognizer to add ability to select header to this cutsom header with an action
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(headerClicked(sender:)))
// add Gesture Recognizer to our header
headerView.addGestureRecognizer(tapGesture)
return headerView
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
// check if row's section expanded parameter is set to true or false. set height of rows accordingly to hide or show them
if list[indexPath.section].expanded == true {
return 44
} else {
return 0
}
}
habe ich die entsprechenden Codezeilen oben. Wenn Sie die Zeilenhöhe auf 0 ändern, sollten die Zellentrennlinien auch in Höhe 0 geändert oder ausgeblendet werden?
Warum geht die Kopfzeile in den einzelnen Abschnitten nicht bis zur rechten Seite des Bildschirms, wenn das Storyboard den ganzen Weg zur rechten Kante hat? Wird deshalb auch die Beschriftung für die Kopfzeile nicht angezeigt? Weil die rechte Kante abgeschnitten wird?
Sorry für die grundlegenden Fragen, ich bin immer noch den Dreh raus, also würden alle Vorschläge sehr geschätzt werden.
nur schreiben self.yourtableview.tableFooterView = UIView() in viewDidLoad –
Ist das zu reparieren den Zufall Zellseparatoren oder zu beheben, um das Text-Label in denen verstecken Tabellenansichtszelle, die nicht angezeigt wird, weil sie abgeschnitten ist? – user3628240