2016-05-31 15 views
0

Ich möchte einen Tableview auf seinen Container, die Ansicht eines View-Controllers, 'anheften'. Da UIView keine Ankereigenschaften hat, versuche ich dies mit dem LayoutMarginsGuide zu tun.pin UiTableView zu (View-Controller) View mit Layout-Anker

UIView does not provide anchor properties for the layout margin attributes. Instead, the layoutMarginsGuide property provides a UILayoutGuide object that represents these margins. Use the guide’s anchor properties to create your constraints.

 let margins = self.view.layoutMarginsGuide 
    self.tableView.leadingAnchor.constraintEqualToAnchor(margins.leadingAnchor).active = true 
    self.tableView.trailingAnchor.constraintEqualToAnchor(margins.trailingAnchor).active = true 

Aber die Ausführung des Codes ich die folgende Fehlermeldung erhalten:

** Terminating app due to uncaught exception 'NSGenericException', reason: 'Unable to activate constraint with items <UITableView: 0x7fdfd0ab5e00; frame = (0 0; 768 1024); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x7fdfd8452e00>; layer = <CALayer: 0x7fdfd84c11c0>; contentOffset: {0, 0}; contentSize: {0, 0}> and <UILayoutGuide: 0x7fdfd86d7ca0 - "UIViewLayoutMarginsGuide", layoutFrame = {{0, 0}, {0, 0}}, owningView = <UIView: 0x7fdfd75a8aa0; frame = (0 0; 768 1024); autoresize = W+H; layer = <CALayer: 0x7fdfd0409270>>> because they have no common ancestor. Does the constraint reference items in different view hierarchies? That's illegal.' 

Der wichtige Teil:

...because they have no common ancestor. Does the constraint reference items in different view hierarchies? That's illegal.' 

Aber wie soll das funktionieren soll?

+0

keine derartigen Probleme auf iOS 9-Simulator. – BangOperator

Antwort

1

erste Einschränkung Änderung wie dies self.tableView.leftAnchor.constraintEqualToAnchor(view.leftAnchor).active = true self.tableView.rightAnchor.constraintEqualToAnchor(view.rightAnchor).active = true

sein, wenn das Problem noch vorhanden ist, damit, dass Tableview als Subview Ansicht hinzugefügt wird

view.addSubview(tableView) 
+0

vielen dank! Ich hatte tatsächlich das TableView nach der Zuweisung der Einschränkungen hinzugefügt – brainray