0

我正在尝试实现一个硬编码布局,其中两个文本视图应该堆叠在一起并以父 UICollectionViewCell 为中心:

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

由于各种遗留/业务原因,我应该使用在 UICollectionViewCell 的子类中硬编码的约束来执行此操作。两个文本视图的长度可以不同,但​​应该在父视图中垂直居中,同时在另一个之上。

有没有一种简单的方法可以在约束中表达这一点?我对这种类型的布局系统有点陌生,所以任何帮助表示赞赏!

我正在使用的应用程序也使用 Masonry ( https://github.com/SnapKit/Masonry ) 库,如果这能让事情变得更容易的话。

4

1 回答 1

0

假设标签被命名为textView1textView2

您需要设置一个约束textView1以使其水平居中superview(the UICollectionViewCell),然后居中textView2textView1您也可以居中superview),您将同时居中。

为了使其彼此重叠,您必须设置一个约束以将textView2顶部设置为textView1底部。

从未使用过 Masonry,但看起来你需要有这些约束:

[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);
}];
于 2016-10-08T15:21:43.990 回答