2015-02-23 4 views
7

Ich habe eine Tabellenansicht mit benutzerdefinierten Zellen, die mehrere Ansichten übereinander gestapelt enthält und einer von ihnen wird mithilfe einer XIB-Datei instanziiert. In dieser XIB-Datei habe ich ein UIImage und zwei UILabels, die ich in einer UIView gekapselt habe. Ich habe schon herausgefunden, dass dies die Quelle meiner Ausnahme ist, aber ich verstehe nicht warum. Wenn ich feste (statt relative) Einschränkungen für die Beschriftungen festlege, d. H. Feste Breite und Höhe, funktioniert es.[UILabel Länge]: unerkannter Selektor an Instanz gesendet nach Verwendung von AutoLayout

Ich füge einen Druckbildschirm an, der die Einschränkungen anzeigt. Beachten Sie, dass die Konstante in den meisten Constraints = 0 ist, andernfalls wird sie in der Dokumentskontur in Klammern angegeben. Die Höhe des Etiketts beträgt 0,5 der Höhe des Containers.

Irgendwelche Hinweise, warum es abstürzt?

Antwort

16

Gerade angetroffen und behoben dieses Problem für mich. Wir hatten ein UILabel in einer UIView, und dieses UILabel-Outlet hieß title. Als wir unsere Zelle nach 'layoutIfNeeded' gefragt haben, haben wir die Ausnahme UILabel length bekommen. Die - viewForBaselineLayout Methode auf UIView erwähnt den Worttitel.

Wir änderten die Steckdose, so hieß es "cellTitle" (alles andere als "Titel") und dieser Absturz geht weg.

Können Sie versuchen, Ihren Namen zu ändern?

+0

Danke! Du hast mir stundenlanges Debugging erspart :) – Salah

+0

toller Fang und du hast meine Stunden und Gehirnzellen gerettet! Vielen Dank! –

+0

Es passiert nur in iOS8-Version. –

0

Stellen Sie sicher, dass Sie eine statische Tabelle verwenden. Wenn Sie dann Methoden wie heightForFooterRow entfernen

stellen Sie sicher, dass Sie automatisches Layout, alle zurücksetzen und App erstellen.