Beim Versuch, ein AutoLayout-Problem zu debuggen (eine Tabellenzelle, die mit der Größe ihres Inhalts wachsen soll, wird unter bestimmten Umständen nicht gesetzt), stelle ich ein ein Haltepunkt in der letzten Zeile meiner tableView:heightForRow:
Methode, und versucht, den Wert von systemLayoutSizeFittingSize:
ich diese erhalten zu drucken:"Dieser NSLayoutConstraint wird mit einer Konstanten konfiguriert, die interne Grenzen überschreitet"
(lldb) p ((CGSize)[cachedCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize]).height
2014-10-14 11:15:49.492 AppName[72132:10302054] This NSLayoutConstraint is being configured with a constant that exceeds internal limits. A smaller value will be substituted, but this problem should be fixed. Break on void _NSLayoutConstraintNumberExceedsLimit() to debug. This will be logged only once. This may break in the future.
(CGFloat) $0 = 57
Na ok, das ist interessant. Aber ich versuche, und tun, was er sagt, und einen Haltepunkt an dieser Funktion:
... und dieser Haltepunkt nicht getroffen hat bekommen.
- Setze ich den Haltepunkt korrekt?
- In jedem Fall, irgendwelche Hinweise auf, was könnte falsch mit meinen Einschränkungen führen zu diesem?
(Dummerweise scheint es in einigen Fällen zu arbeiten, aber nicht in anderen, und ich kann keinen Unterschied im Setup. Sehen)
Nun, jetzt habe ich einen Breakpoint nach 'br l' gesetzt (danke!), Aber es wird immer noch nicht getroffen - es sei denn, ich rufe 'p (CGSize) [cachedCell.contentView systemLayoutSizeFittingSize: UILayoutFittingCompressedSize]' im Debugger, in diesem Fall kann ich die Trefferanzahl nach oben gehen sehen! –
Endlich das Problem gelöst. Wenn ich 'preferredMaxLayoutWidth' manuell auf dem Etikett einstellen muss, was zur Hölle macht Auto Layout für mich ?! –
@RobertAtkins, wie hast du es behoben? – orkenstein