Ограничения к центру и объекту между двумя объектами

Мой дизайн требует, чтобы кнопка была в центре между двумя другими объектами. Один из объектов находится в вертикальном центре вида (зеленый). Другой объект находится на некотором расстоянии от нижнего края (зеленый). Теперь задача состоит в том, чтобы центрировать третий объект (красный) между двумя другими. Я использую новые ограничения xcode6, и мой взгляд находится в режиме wRegular hRegular. Это было бы легко с кодом, но я пытаюсь использовать раскадровку для достижения этой цели.

2 ответа

Решение

Есть несколько подходов:

  • В iOS 9 проще всего было бы определить вертикаль UIStackedView с distribution "равного расстояния", а затем addArrangedSubview три круглых подпредставления

  • Другим вариантом в iOS 9 будет создание двух UILayoutGuide (который будет представлять два знака вопроса на вашем изображении), добавьте их в общий супервизор с addLayoutGuide и определите, чтобы они были одинакового размера друг с другом. Соответствующий VFL может выглядеть так:

    "V:|[greenView1(==100)]-[layoutGuide1]-[redView(==50)]-[layoutGuide2(==layoutGuide1)]-[greenView2(==greenView1)]|"
    
  • В более ранних версиях iOS, вместо того, чтобы использовать UILayoutGuideВы можете просто создать два "космических" вида (UIView с чистым фоном, чтобы они не были видны), затем определите ограничение таким образом, чтобы их высота была одинаковой, а затем определите вертикальные ограничения на расстояние между пятью видами (три круга и два вида распорок) с постоянной нуля.

    Это может выглядеть так:

    IB сцена

    Я сделал эти "проставочные" виды видимыми, чтобы проиллюстрировать идею, но, очевидно, вы установили прозрачность, чтобы не видеть их в пользовательском интерфейсе.

    Это логически эквивалентно UILayoutGuide подход в iOS 9, за исключением того, что UIView "Проставочные" виды просто несут немного больше, чем UILayoutGuide, Но в версиях iOS до 9, это общий подход к этой проблеме.

Я придумал самый простой подход.

Недавно добавленный вид выделен синим цветом. и в моем случае ярлык должен быть в центре

Просто следуйте этим шагам:

  1. добавить вид между ними два круга
  2. добавьте его завершающий и ведущий пробел. (в моем случае ноль к суперпредставлению)
  3. добавить сверху и снизу пространство от кругов.
  4. теперь поместите ваш красный круг в недавно добавленное представление
  5. сделать его горизонтально и вертикально по центру из меню Alrignment

выравнивание

Другие вопросы по тегам