#ios #objective-c #xcode #autolayout #ios-autolayout
#iOS #objective-c #xcode #автозаполнение #ios-автозапуск
Вопрос:
Я использую автоматическую компоновку с использованием языка визуального форматирования.
В горизонтальном режиме я могу включить обе метки в одну строку кода следующим образом
constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[Btn1]-10-[dummyLabel1]-10-[Lbl2]-10-[dummyLabel2]-10-[Btn2]" options:0 metrics:metrics views:views];
[self.view addConstraints:constraints];
Мне пришлось использовать две строки ограничений, подобных этой, чтобы разместить два объекта в вертикальном режиме.
constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[dummyLabel]-16-[fixedLabel]-13-|" options:0 metrics:metrics views:views];
[self.view addConstraints:constraints];
constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[dummyLabel2]-16-[fixedLabel]-13-|" options:0 metrics:metrics views:views];
[self.view addConstraints:constraints];
Могу ли я каким-либо образом сделать это в одной строке и для вертикального режима, используя VFL?
Комментарии:
1. Не уверен, чего вы пытаетесь достичь, делая это в коде, но если вам нужно настроить ограничение, созданное в interface builder после инициализации представления, вы можете перетащить выход из ограничения на свой ViewController и изменить его программно позже.
2. В настоящее время для этого класса не реализован файл XIB. И я пытаюсь проверить, можно ли это сделать в самом VFL. Спасибо
Ответ №1:
Нет. Существует множество различных способов автоматической компоновки: в Interface Builder, с использованием VFL, создания NSLayoutConstraints программно или с использованием привязок макета. У каждого есть свои недостатки. Это одно из мест, где VFL выходит из строя.