5

我有一个UILabel我有时想在一个单元格中垂直居中。这必须以编程方式完成。我尝试添加以下约束以使其居中(locName 是 UILabel):

[cell addConstraint:[NSLayoutConstraint constraintWithItem:cell
attribute:NSLayoutAttributeCenterY relatedBy:0 toItem:cell.locName 
attribute:NSLayoutAttributeCenterY multiplier:1 constant:0]];

这是我得到的结果:

在此处输入图像描述

它看起来像它的居中,但也许改变了或什么的高度UILabel

这是 IB 中的视图控制器:

在此处输入图像描述

如何以编程方式实现垂直居中?

4

3 回答 3

3

怎么样:除了居中约束之外,为 cell.locName 添加一个高度约束以使其更高。

[cell.contentView addConstraint:
    [NSLayoutConstraint constraintWithItem:cell.locName
                                 attribute:NSLayoutAttributeHeight
                                 relatedBy:NSLayoutRelationGreaterThanOrEqual
                                    toItem:nil
                                 attribute:NSLayoutAttributeNotAnAttribute
                                multiplier:1
                                  constant:20]];
于 2012-10-10T16:15:22.073 回答
2

您可能遇到了单元格中已经存在的其他约束。添加约束不会使其他约束消失 - 例如,如果您在顶部和底部标签之间有间距,为了满足这个和新的居中约束,顶部标签的高度将不得不缩小。

您可能需要为这些其他约束创建出口并删除它们以实现居中设计。

于 2012-10-20T08:56:29.330 回答
0

尝试在居中后达到 UIlabel 高度???

或者您可以以编程方式在您的自定义单元格中重新分配标签位置。

于 2012-10-08T12:44:32.387 回答