Layout automático do iOS: Espaços iguais para ajustar a largura das visualizações em excesso [duplicado]
Duplicata Possível:
Autolayout Mesmo espaçamento
Eu estou tentando criar uma barra de rolagem com botões (semelhante a umUISegmentedControl
). A super visão é umaUIScrollView
. Assim que os botões não couberem na vista de rolagem, a vista de rolagem deve ser rolável. Até agora, quase tudo funciona bem:
Com muitos botões (rolados para a direita):
Não muitos botões:
Agora, meu objetivo é que, se houver espaço para todos os botões, eles fiquem igualmente distribuídos em toda a visualização de 320px.Como posso definir restrições para os espaços entre os botões?
No momento, estou usando as seguintes restrições (auto é umUIScrollView
):
UIView *firstButton = self.buttons[0];
[self.buttonConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"|-(5)-[firstButton]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(firstButton)]];
UIView *lastButton = [self.buttons lastObject];
[self.buttonConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"[lastButton]-(5)-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(lastButton)]];
UIView *previousView = nil;
for (UIView *view in self.buttons) {
if (previousView) {
[self.buttonConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"[previousView]-(5)-[view]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(previousView, view)]];
}
previousView = view;
}
Se eu mudar o tipo de superview deUIScrollView
para umUIView
, Eu recebo o seguinte resultado, ainda não é o que eu quero, mas pelo menos ele procura a restrição do último botão que o liga à borda direita (faz sentido, que isso não aconteça com a scrollview, como o tamanho do conteúdo é definido automaticamente):
Alguma ideia?