cocoa views padding autolayout

cocoa - Restricción del autoajuste del cacao: relleno programático del número variable de vistas



views padding (1)

Posible este fragmento de código corto es lo que estás buscando:

NSMutableArray* newVerticalConstraints = [NSMutableArray array]; UIView* firstView = nil; UIView* secondView = nil; UIView* superview = <Your container view>; NSArray* subviews = [superview subviews]; if ([subviews count] > 0) { firstView = [subviews objectAtIndex:0]; // Add first constraint [newVerticalConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[firstView]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(firstView)]]; for (int i = 1; i < [subviews count]; i++) { secondView = [subviews objectAtIndex:i]; [newVerticalConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[firstView]-10-[secondView]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(firstView,secondView)]]; firstView = secondView; } // Add last constraint [newVerticalConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[firstView]-10-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(firstView)]]; [superview removeConstraints:self.verticalConstraints]; [superview addConstraints:newVerticalConstraints]; // Save all vertical constraints to be able to remove them self.verticalConstraints = newVerticalConstraints; }

Quiero poder agregar nuevas vistas a una supervista pero para mantener una distancia vertical constante entre ellas. Para eso traté de establecer programáticamente una restricción para cada vista, pero no pude encontrar la manera de hacerlo. El problema es que no sé de antemano el número o la posición relativa de las vistas.

¿Hay alguna manera de configurar programáticamente una restricción para cada vista para que independientemente de cualquier otra vista que vean, el diseño automático mantenga el espaciado constante entre las vistas?