Авторазметка: автоматическое обновление ограничений, когда какой-либо вид пуст
У меня есть такая точка зрения
_______________________________
| | |
| Label 0 |
| ^ |
| Label 1 |
| ^ |
| Label 2 |
| ^ |
| Label N |
|_______________________________|
^
обозначает ограничение, которое связывает вершину Label X+1
с нижней Label X
, Label 0
ограничен вершиной суперпредставления с фиксированной константой.
То, что я пытаюсь достичь, это: если некоторые Label X
тогда пуст Label X+1
должен занять свое место.
_______________________________
| | |
| Label 0 (empty) |
| ^ |
| Label 1 |
| ^ |
| Label 2 |
| ^ |
| Label N |
|_______________________________|
|
| The new layout
\ /
_______________________________
| | |
| Label 1 | (here it is also Label 0 but is empty)
| ^ |
| Label 2 |
| ^ |
| Label N |
|_______________________________|
Возможно ли это с автоматической разметкой или мне нужно программно проверять пустоту, чтобы обновить ограничения вручную?
Отказ от ответственности: если этот вопрос звучит очень просто, извините, пожалуйста, я перехожу с пружин и стояков, и пока это довольно придирчиво.
1 ответ
Нужно ли его менять, когда контент виден? Если нет, попробуйте следующее: вы можете сделать обновление в методе viewWillAppear. Для каждого ярлыка звоните
[firstLabel setNumberOfLines:0];
[firstLabel setText:newProductTitleText];
[firstLabel sizeToFit];
Установка числа строк в 0 позволяет метке динамически использовать много строк по мере необходимости. Если это пустая метка, которая должна фактически стать 0 строками. Это обновит фреймы, а оставшаяся часть должна позаботиться об остальном.