Verwenden von Autolayout in einer tableHeaderView

Ich habe einUIView Unterklasse, die ein mehrzeiliges @ enthäUILabel. Diese Ansicht verwendet Autolayout.

Ich möchte diese Ansicht als @ festlegtableHeaderView einesUITableView (nich eine Abschnittsüberschrift). Die Höhe dieser Kopfzeile hängt vom Text des Etiketts ab, der wiederum von der Breite des Geräts abhängt. Die Art von Szenario-Autolayout sollte großartig sein.

Ich habe @ gefunden und versucviel viel solutions, um dies zum Laufen zu bringen, aber ohne Erfolg. Einige der Dinge, die ich ausprobiert habe:

ein @ setzpreferredMaxLayoutWidth auf jedem Etikett währendlayoutSubviewsdefining anintrinsicContentSize Versuch, die erforderliche Größe für die Ansicht zu ermitteln und das @ festzulegtableHeaderView 's Rahmen manuell.der Ansicht eine Breitenbeschränkung hinzufügen, wenn der Header gesetzt ist ein paar andere Dinge

Einige der verschiedenen Fehler, auf die ich gestoßen bin:

label geht über die Breite der Ansicht hinaus, wird nicht umbrochen Rahmenhöhe ist 0app stürzt mit Ausnahme von @ Auto Layout still required after executing -layoutSubviews

Die Lösung (oder Lösungen, falls erforderlich) sollte sowohl für iOS 7 als auch für iOS 8 funktionieren. Beachten Sie, dass dies alles programmgesteuert erfolgt. Ich habe ein @ eingerichtsmall sample project für den Fall, dass Sie es hacken möchten, um das Problem zu sehen. Ich habe meine Bemühungen auf den folgenden Startpunkt zurückgesetzt:

SCAMessageView *header = [[SCAMessageView alloc] init];
header.titleLabel.text = @"Warning";
header.subtitleLabel.text = @"This is a message with enough text to span multiple lines. This text is set at runtime and might be short or long.";
self.tableView.tableHeaderView = header;

Was vermisse ich

Antworten auf die Frage(16)

Ihre Antwort auf die Frage