Kann mir jemand sagen, warum die Eigenschaft von UITableView tableHeaderView
nur Werte ungleich Null akzeptiert?
Ich versuche, den Höhenwert der tableHeaderView
Eigenschaft meiner UITableView zu ändern, um den oberen Rand zu verengen.
Unten ist die Art und Weise, wie ich mich näherte.
Wenn Sie den Wert der Eigenschaft height von tableHeaderView in UITableView auf 0 setzen, würde der obere Rand tatsächlich entfernt
Es hat sich jedoch nichts geändert, wenn der Code wie unten angewendet wird.
//UIView has the tableView property for its one of sub views
tableView.tableHeaderView = UIView(frame: CGRect(origin:.zero, size: CGSize(width: 0, height: 0)))
Ich habe online danach gesucht und eine Erklärung in der Apple-Referenz gefunden
. Es scheint, als würde die Eigenschaft tableHeaderView nur einen Wert ungleich Null für ihre Änderung akzeptieren. Also habe ich einfach den Wert für die Höheneinstellung auf gesetzt CGFloat.leastNormalMagnitude
und es hat einfach funktioniert.
tableView.tableHeaderView = UIView(frame: CGRect(origin:.zero, size: CGSize(width: 0, height: CGFloat.leastNormalMagnitude)))
Der Punkt, auf den ich neugierig bin, ist, dass ich immer noch nicht verstehen kann, warum Nullwert und leastNormalMagnitude
Wert einen Unterschied machen. Sollte das Festlegen des Rahmenhöhenwerts auf 0 nicht tatsächlich die UIView auf dem Bildschirm entfernen?
Lösung des Problems
Aus dem, was ich in Apple doc sehe:
Wenn Sie dieser Eigenschaft eine Ansicht zuweisen, legen Sie die Höhe dieser Ansicht auf einen Wert ungleich Null fest.
Es gibt kein Warum. Es ist einfach so.
Keine Kommentare:
Kommentar veröffentlichen