CustomTableCellView Umsetzung von layoutSubviews aufrufen muss, super , NSInternalInconsistencyException
Auf mit autoLayout in der benutzerdefinierten Zelle für tableView xib, erhalte ich folgende Fehlermeldung.
, Wenn die Ausführung im iOS-6-simulator
CustomCells Umsetzung von layoutSubviews aufrufen muss, super
Assertion failure in
-[CustomCells layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2372/UIView
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after executing -layoutSubviews. CustomCells's implementation of -layoutSubviews needs to call super.'
*** First throw call stack:
, Wenn die Ausführung im iOS-5-simulator
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'The NIB data is invalid.'
*** First throw call stack:
Temp-Fix :
Es ist in Ordnung, wenn am ein deaktivieren der autoLayout in der benutzerdefinierten Zelle.
Aber Orientierung ist das handling nicht gut in diesem Fall. Bitte helfen Sie.
- Wann immer Sie anrufen addSubview nennen layoutSubviews auf, die Sicht ex: [Zelle addSubview:contentView]; [Zelle layoutSubviews];
- die ähnliche Frage mit funktionierenden Lösungen: stackoverflow.com/questions/12610783/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gearbeitet werden kann, um auf iOS6, indem Sie alles in Ihrer benutzerdefinierten Zelle im tableview eine container-Ansicht. ie-eine neue Ansicht Erstellen, um die Zelle ausfüllen, dann Ort-Kontrollen etc. im inneren, dass. Auch stellen Sie sicher, dass Sie:
für die container-und Untersichten
iOS 5.1 und früheren Versionen sind nicht kompatibel mit AutoLayout. Es ist nur für iOS 6.0+.
Angenommen, Sie sind mit storyboards, wenn Sie wollen, zu verwenden, AutoLayout, aber noch bewahren die Kompatibilität mit iOS-Versionen vor 6.0, benötigen Sie zwei Ziele: eine für iOS 6 und ein weiteres für iOS 5 (oder älter). Für jeden, der ein separates storyboard, bei dem AutoLayout aktiviert ist (für iOS 6), und eine, wo es nicht ist (für iOS 5).
Hier ist ein StackOverflow-thread für "best practices" mit AutoLayout und rückwärts-Kompatibilität mit iOS 5: Aktivieren von auto layout in iOS 6, während verbleibenden rückwärts kompatibel mit iOS 5.
In meiner Erfahrung, es ist nicht der Mühe Wert, zu verwenden, AutoLayout-wenn Sie möchten, dass die rückwärts-Kompatibilität. Wenn Sie mit storyboards, es ist eine Wartung Kopfschmerzen zu haben 2 Ziele und 2 storyboards zu synchronisieren. Wenn Sie nicht mit storyboards, müssen Sie separate code für iOS 5 und iOS 6, das wird länger dauern, zu testen und zu aktualisieren.