Ответ 1
Существует несколько подходов:
-
В iOS 9 самым простым было бы определить вертикальный
UIStackedView
сdistribution
равного расстояния, а затемaddArrangedSubview
три круговых подсмотра -
Другим вариантом в iOS 9 будет создание двух
UILayoutGuide
(которые будут представлять две вопросительные знаки на вашем изображении), добавьте их в общий супервизор с помощьюaddLayoutGuide
и определите их как один размер как друг друга. Соответствующий VFL может выглядеть так:"V:|[greenView1(==100)]-[layoutGuide1]-[redView(==50)]-[layoutGuide2(==layoutGuide1)]-[greenView2(==greenView1)]|"
-
В более ранних версиях iOS вместо использования
UILayoutGuide
вы могли бы просто создать два "пространственных" вида (UIView
с четким фоном, чтобы они не были видны), затем определите ограничение, чтобы их высоты были идентичны, а затем определяют ограничения вертикального интервала между пятью представлениями (три круга и два представления спейсера) с постоянной нуля.Это может выглядеть так:
Я сделал эти "spacer" взгляды видимыми, чтобы проиллюстрировать эту идею, но, очевидно, вы бы установили их прозрачными, чтобы вы не могли видеть их в пользовательском интерфейсе.
Это логически эквивалентно подходу
UILayoutGuide
в iOS 9, за исключением того, что представленияUIView
"spacer" просто несут накладные расходы, а неUILayoutGuide
. Но в версиях iOS до 9 это общий подход к этой проблеме.