Использование множителей для размеров довольно просто ... Я хочу, чтобы мое подпредставление было 80% ширины его суперпредставления, поэтому я просто установил равную ширину с множителем 0.8
Тем не менее, это может привести к путанице при использовании множителей на ведущем / трейлинг-центре / и т. Д.
Из Apple Руководство по автоматической компоновке :
Так, например, скажем:
Red Leading is set to Blue Trailing, Constant 8, Multiplier 1
Blue Leading is at 0, and width is 100
Red's Leading will be (1.0 x 100) + 8 = 108
Для ясности, однако, трейлинг синих не совпадает с его шириной.
Предположим, лидирующие позиции синихна 50
?Если его ширина равна 100, трейлинг будет равен 150, поэтому:
Red's Leading will be (1.0 x 150) + 8 = 158
Теперь верните «Ведущее» синих на 0
, но давайте изменим множитель на 0,75
Red's Leading will be (0.75 x 100) + 8 = 83
и, если у лидера Blue 50, то у Blue трейлинг равен 150:
Red's Leading will be (0.75 x 150) + 8 = 120.5
Просто вернитесь к формуле, чтобы все было прямо:
item1.attribute = multiplier * item2.attribute + constant
Вот наглядный примеруточнить.Все метки 100x40
, а каждая зеленая метка ограничена Green.Leading = Blue.Trailing + Constant: 8
Для Set # 1,множитель 1.0
- для наборов № 2, № 3 и № 4, множитель 0.5
.
комплект 1, ведущий синего цвета 0
, множитель Грина 1
..Это то, что обычно видят, и это очевидно - зеленый цвет находится в 8 пунктах от синего трейлинга (Blue.Leading + Blue.Width) или
1.0 * (0 + 100) = 100
100 + 8 = 108
Set 2, Blue's Leading -по-прежнему 0
, но множитель Грина равен 0.5
... поэтому Грин составляет 8 пунктов от трейлинга Синего, то есть (Blue.Leading + Blue.Width), * 0,5 или
0.5 * (0 + 100) = 50
50 + 8 = 58
Установите 3, Лидерство Синего теперь 80
, Множитель Грина по-прежнему 0.5
... так что Грин на 8 пунктов от Трейлинга Синего, который равен (Blue.Leading + Blue.Width), * 0.5 или
0.5 * (80 + 100) = 90
90 + 8 = 98
Набор 4 выглядит странно.Лидерство у Blue теперь 200
, множитель Green по-прежнему 0.5
... так что Green составляет 8 пунктов от Trailing Blue, то есть (Blue.Leading + Blue.Width), * 0.5 или
0.5 * (200 + 100) = 150
150 + 8 = 158
Как мы видим, в Сете № 4 зеленый цвет оказывается Левым от синего, что является правильным, но не настолько интуитивным.