我正在尝试实现一种硬编码布局,其中两个文本视图应该相互堆叠并以父UICollectionViewCell为中心:
----------------------
| |
| This is text |
| Also text |
| |
----------------------
由于各种遗留/业务原因,我应该使用UICollectionViewCell的子类中的硬编码约束来完成此操作。两个文本视图的长度可能不同,但应在父视图中垂直居中,同时彼此重叠。
是否有一种简单的方法可以在约束中表达这一点?我对这种类型的布局系统有点新意,所以对任何帮助都表示赞赏!
我正在使用的应用程序也使用了Masonry(https://github.com/SnapKit/Masonry)库,如果这样可以让事情变得更容易。
答案 0 :(得分:0)
让我们假设标签名为textView1
和textView2
。
您需要设置一个约束,使其textView1
水平居中superview
(UICollectionViewCell
),然后textView2
居中textView1
(你也可以集中在它上面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);
}];