Рассмотрим представление, содержащее три UILabel
с вертикальными ограничениями, определенными следующим образом:
[self.view
addConstraints:[NSLayoutConstraint
constraintsWithVisualFormat:@"V:[label1]-2-[label2]-2-[label3]"
options:0
metrics:nil
views:views]];
Это создаст макет с метками, расположенными вертикально с отступом 2 пикселя между каждой меткой.
В моем приложении иногда текст, отображаемый на одной или нескольких метках, равен нулю (или пуст), что означает, что рамка метки заканчивается высотой == 0. В этом случае я хочу, чтобы отступ в 2 пикселя между меткой высоты 0 был рухнул.
Когда все метки имеют текстовое значение, я хочу, чтобы макет был:
текст label1
[2px]
текст label2
[2px]
текст label3
Когда label2
имеет нулевое текстовое значение, я хочу, чтобы макет был:
текст label1
[2px]
текст label3
В последнем случае метка 2 на самом деле все еще существует, но ее высота равна 0, а ее отступ в 2 пикселя свернут.
Вопрос. Возможно ли это? Как бы я определил ограничения для достижения этой цели?
РЕДАКТИРОВАТЬ
Я понимаю, что можно реализовать заполнение (вставка края) в подклассе UILabel
и убрать заполнение из ограничений. Я могу пойти по этому пути, просто надеясь, что есть способ определить свертывание этого заполнения в определении ограничения.