Ich habe ein Subview, die ich will Anschläge halten Bildschirm während der Rotation, so dass ich beschloss, den NSLayoutConstraint Typen zu setzen:
nachstehendes Leerzeichen
Top zu Super Space to Superview
Button Space zu Superview
Ich bin in einer Unterklasse von UITableViewCell. Ich schrieb den Code, aber ich erhalte die folgenden Fehler:
‚NSInvalidArgumentException‘ Grund: ‚Kann nicht Constraint-Format analysieren‘
'NSInvalidArgumentException', reason: 'Unable to parse constraint format:
self is not a key in the views dictionary.
H:[self.arrows]-5-|
Mein Code in CustomCell.m ist:
self.arrows = [[Arrows alloc]initWithFrame:CGRectMake(self.contentView.bounds.size.width-30, self.bounds.origin.y+4, 30, self.contentView.bounds.size.height-4)];
NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(self.arrows, self.contentView);
NSMutableArray * constraint=[[NSMutableArray alloc]init];
[constraint addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H: [self.arrows]-5-|" options:0 metrics:nil views:viewsDictionary]];
[constraint addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-1-[self.arrows]" options:0 metrics:nil views:viewsDictionary]];
[constraint addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"[V: [self.arrows]-1-|" options:0 metrics:nil views:viewsDictionary]];
[self.arrows addConstraints:constraint];
Vielen Dank –
ziemlich lächerlich, dass die docs Beispiele geben von 'NSDictionaryOfVariableBindings' mit dem Wörterbuch zu erstellen, aber nicht erwähnen, dass es nicht mit einer Eigenschaft oder IBOutlets arbeiten –
Jonathan, ich war selbst ziemlich verwirrt. Die Dokumente geben ausdrücklich an, diese Methode zu verwenden. Ich dachte nur, es war schlau genug, um das Selbst zu entfernen. Teil des Schlüssels automatisch. – Nailer