Возможный дубликат:
Автоопределение равномерного пробега
Я пытаюсь создать прокручиваемую панель с кнопками (аналогично UISegmentedControl
). Супервизор - UIScrollView
. Как только кнопки не вписываются в прокрутку, прокрутка должна быть прокручиваемой. Пока все работает нормально:
С большим количеством кнопок (прокручивается вправо):
Не так много кнопок:
Теперь моя цель состоит в том, что если есть место для всех кнопок, они должны быть равномерно распределены по всему представлению 320 пикселей. Как определить ограничения для пробелов между кнопками?
В настоящее время я использую следующие ограничения (self - UIScrollView
):
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;
}
Если я изменил тип супервизора с UIScrollView
на UIView
, я получаю следующий результат, все еще не тот, который я хочу, но по крайней мере он ищет ограничение последней кнопки, которое связывает его с (имеет смысл, что этого не происходит для scrollview, так как размер содержимого автоматически устанавливается):
Любые идеи?