Можно ли равномерно распределять левое и правое пространство для b
в @"|-[a(5)]-[b(8)]-[c(5)]-|"
с использованием строк визуального формата?Равномерно распределить интервал с помощью строки форматирования Auto Layout
ответ
No.
Однако, вы можете сделать это с визуальным форматом и создание ручного ограничения. Измените строку VFL на:
@"|-[a(5)]->=0-[b(8)]->=0-[c(5)]-|"
Это говорит о том, что вы не слишком обеспокоены фактическом размере пространства между а и Ь, Ь и с.
Теперь создайте ограничение, фиксирующее центр b в центре надзора, используя constraintWithItem:...
(я набираю это на телефоне, поэтому простите меня за то, что не изложил весь метод).
Это, в сочетании с вашим гибким интервалом, даст равные пробелы слева и справа от b.
Это звучит Великий. Я сделаю это. Благодаря! – flohei
Работает просто отлично. Так просто. Благодаря! :-) – flohei
Как именно вы «привязывали центр b к центру надзора», @flohei? И разве не возможно использовать визуальный формат для этого, или же нужно использовать 'constraintWithItem: attribute: relatedBy: toItem: attribute: multiplier: constant:'? –
Apple's Auto Layout Guide предлагает использовать «spacer views». Вот решение для укладки ваши три вида с равными промежутками по горизонтали:
// create views dictionary
NSMutableDictionary *viewsDictionary = [NSMutableDictionary dictionary];
[viewsDictionary addEntriesFromDictionary:NSDictionaryOfVariableBindings(viewA, viewB, viewC)];
// create 4 spacer views
for (int i = 0; i < 4; i++) {
UIView *spacerView = [[UIView alloc] init];
spacerView.hidden = YES;
[self addSubview:spacerView];
[viewsDictionary setObject:spacerView
forKey:[NSString stringWithFormat:@"spacer%d", i + 1]];
}
// disable translatesAutoresizingMaskIntoConstraints in views for auto layout
[viewsDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop)
{
[obj setTranslatesAutoresizingMaskIntoConstraints:NO];
}];
// add constraints
[superview addConstraints:
[NSLayoutConstraint constraintsWithVisualFormat:
@"|[spacer1(>=0)][viewA][spacer2(==spacer1)][viewB][spacer3(==spacer1)][viewC][spacer4(==spacer1)]|"
options:kNilOptions
metrics:nil
views:viewsDictionary]];
Обратите внимание, что ширина spacer1
«s устанавливается, чтобы быть больше, чем 0. Последующие виды распорки установлены, чтобы иметь одинаковую ширину с spacer1
.
Есть ли причина, по которой вы просто не писали 'NSDictionary * views = NSDictionaryOfVariableBindings (viewA, viewB, viewC);'? –
Я отредактировал свой ответ, чтобы использовать несколько аргументов в NSDictionaryOfVariableBindings. Я использую изменяемый словарь, чтобы я мог динамически добавлять в него простейшие представления. –
О, право.^___^'NSMutableDictionary * views = NSDictionaryOfVariableBindings (viewA, viewB, viewC) .mutableCopy;' then. –
- 1. Равномерно распределить высоту с помощью CSS
- 2. Пытается равномерно распределить изображения с помощью css
- 3. Android TabLayout: равномерно распределить
- 4. Распределить строки равномерно по высоте TableLayout
- 5. Как равномерно распределить информацию?
- 6. Распределить равномерно вертикально без flexbox
- 7. Как равномерно распределить плавающие divs?
- 8. Распределить кнопки в DIV равномерно
- 9. Android: Как распределить вес равномерно
- 10. iOS auto layout: как динамически равномерно размещать предметы?
- 11. Как равномерно распределить члены массива
- 12. Как равномерно распределить многие элементы встроенного блока?
- 13. Использование Auto Layout распространять взгляды равномерно в надтаблицы
- 14. Как распределить эти divs равномерно?
- 15. Auto Layout - Вертикальное расстояние между
- 16. Как распределить нечетное число столбцов «равномерно» с помощью бутстрапа?
- 17. Как распределить несколько divs в div равномерно
- 18. UIsearchController внутри UIViewController с помощью Auto Layout
- 19. Как равномерно распределить группу пролетов через div?
- 20. Как равномерно распределить набор списков по сетке?
- 21. Auto Layout UILabels
- 22. Auto Layout и sizeForChildContentContainer
- 23. Auto Layout: layoutMarginsGuide
- 24. Как распределить элементы равномерно внутри div?
- 25. равномерно распределить divs в нижнем колонтитуле
- 26. Как равномерно распределить трафик между двумя страницами
- 27. Распределить столбцы равномерно в WPF DataGrid
- 28. Как распределить точки равномерно по кривой
- 29. Varnish client.identity - как распределить нагрузку более равномерно?
- 30. Распределить divs равномерно по горизонтальной линии
ОЧЕНЬ ХОРОШЕЕ СОСТОЯЛОСЬ article, связанная с этим вопросом [здесь] (http://stackoverflow.com/questions/13075415/evenly-space-multiple-views-within-a-container-view/25898949#25898949) –