Как вы определяете вертикальную и горизонтальную взаимосвязь между представлениями, используя Masonry DSL для автоматического макета?

С языком визуального формата Apple довольно просто установить горизонтальные и вертикальные отношения между представлениями и их суперпредставлением с помощью разделителей.

Если бы я хотел, чтобы view2 в визуальном примере ниже имел фиксированную ширину, тогда как view1 заполнит оставшееся пространство. С VFL я бы определил это поведение следующим образом:

|-[просмотр1]-[просмотр2(==100)-|

наглядный пример макета, которого я хочу добиться с помощью Masonry

С масонством не так ясно, как установить эти отношения между взглядами; view1 не «осведомлен» о view2 и либо недостигнет его, либо перекроет его. Что мне не хватает?


person petekp    schedule 21.01.2015    source источник
comment
О какой кирпичной кладке вы говорите? Библиотека JavaScript?   -  person Linuxios    schedule 22.01.2015
comment
Разная кладка. Да, это сбивает с толку. github.com/Masonry/Masonry   -  person petekp    schedule 22.01.2015
comment
Никогда об этом не знал! Это могло бы облегчить мою жизнь во много раз...   -  person Linuxios    schedule 22.01.2015


Ответы (1)


Представления по-прежнему «знают» друг о друге. Суть в том, чтобы прикрепить левый край view2 к правому краю view1:

[view1 mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.bottom.left.equalTo(containerView);
        }];

[view2 mas_makeConstraints:^(MASConstraintMaker *make) {
            make.top.bottom.equalTo(containerView);
            make.left.equalTo(view1.mas_right);
            make.right.equalTo(containerView);
            make.width.equalTo(@100);
        }];
person Ben Packard    schedule 22.01.2015