Как сложить + центрировать два текстовых представления, используя программные ограничения?
Я пытаюсь получить жестко закодированный макет, где два текстовых представления должны быть сложены друг на друга и центрированы в родительском UICollectionViewCell:
----------------------
| |
| This is text |
| Also text |
| |
----------------------
Из-за различных унаследованных / бизнес-причин я должен делать это, используя ограничения, жестко запрограммированные в подклассе UICollectionViewCell. Два текстовых представления могут различаться по длине, но должны быть центрированы вертикально в родительском представлении, находясь друг над другом.
Есть ли простой способ выразить это в ограничениях? Я немного новичок в этом типе системы разметки, поэтому любая помощь приветствуется!
Приложение, с которым я работаю, также использует библиотеку Masonry ( https://github.com/SnapKit/Masonry), если это облегчает задачу.
1 ответ
Давайте предположим, что ярлыки названы textView1
а также textView2
,
Что вам нужно, это установить ограничение для центрирования по горизонтали textView1
к этому superview
(UICollectionViewCell
), затем центр textView2
с textView1
(вы можете сосредоточиться на это superview
тоже) и у вас оба будут по центру.
Чтобы получить его друг над другом, вы должны установить ограничение для настройки textView2
верх как textView1
низ.
Никогда не использовал масонство, но похоже, что вам нужно иметь следующие ограничения:
[textView1 mas_makeConstraints:^(MASConstraintMaker *make) {
//Center first textView in the superview
make.centerX.equalTo(superview);
}];
[textView2 mas_makeConstraints:^(MASConstraintMaker *make) {
//Center second textView with the first one
make.centerX.equalTo(textView1);
//Set second textView to be below the first one
make.top.equalTo(textView1.mas_bottom);
}];