2016-10-08 3 views
0

Я пытаюсь достичь трудно закодированный макет, где две точки зрения текста должны быть уложены друг на друга и центрированный в родительском UICollectionViewCell:Как складывать + центрировать два текстовых вида, используя программные ограничения?

---------------------- 
|     | 
| This is text | 
|  Also text  | 
|     | 
---------------------- 

Благодаря различным наследие/коммерческим причинам, я должен делать это использование ограничений, жестко закодированных в подклассе UICollectionViewCell. Два текстовых вида могут различаться по длине, но должны быть центрированы по вертикали в родительском представлении, одновременно находясь друг над другом.

Есть ли простой способ выразить это в ограничениях? Я немного новичок в этой системе макетов, поэтому любая помощь приветствуется!

Приложение, в котором я работаю, использует библиотеку масонства (https://github.com/SnapKit/Masonry), если это упрощает процесс.

ответ

0

Предположим, что этикетки называются textView1 и textView2.

Что вам нужно установить ограничение для центровки по горизонтали textView1 на это superviewUICollectionViewCell), то центр 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); 
}]; 
Смежные вопросы