在约束下移动标签

时间:2015-04-15 16:00:10

标签: ios xcode uilabel constraints frame

我正在尝试移动标签,这比预期的要复杂得多。

以下是视图的必需部分:

left side of my cell

它显示了未读消息的数量和日期(我们在这里是xib)。

当没有未读信息时,我希望看到日期标签与右侧白色区域的中间垂直对齐。

我有“当没有未读信息时”。控制下。因此,我们假设信封及其侧面的数字不存在,并且我只想以编程方式移动我的日期标签

我这样做,框架设置正确,但没有任何动静。完全没有。我甚至尝试过荒谬的数字。

lbDate是我的日期标签。 cell是当前的单元格。

CGFloat newY = ((cell.frame.size.height/2)-(cell.lbDate.frame.size.height/2));
[cell.lbDate setFrame:CGRectMake(cell.lbDate.frame.origin.x, newY, cell.lbDate.frame.size.width, cell.lbDate.frame.size.height)];

所以我猜测约束与此有关。我已经尝试将其中一个约束作为出口(信封和我的日期标签之间的垂直空间),我只是把它设置为荒谬的值,但没有任何动作。

我做错了什么?我该怎么办?

编辑: 显然移动两者底部和顶部约束允许我移动我的标签,现在我可以正确地移动它。

虽然当我将它设置为旧的初始值时,它会以某种方式“卡在”信封上,并且彼此之间的距离太近了。

这是另一个代码段:

if (unreadcount.intValue > 0){
        cell.lbUnreadMessages.hidden = NO;
        cell.imgEnvelope.hidden      = NO;
        cell.lbUnreadMessages.text   = [NSString stringWithFormat:@"%@", unreadcount];

        cell.csLbDateToImgEnvelopeVertical.constant  = 0;   //Initial value
        cell.csLbDateBottomSpaceToSuperview.constant = 1;   //Initial value
    }else{
        cell.lbUnreadMessages.hidden = YES;
        cell.imgEnvelope.hidden      = YES;

        cell.csLbDateToImgEnvelopeVertical.constant  = -12;
        cell.csLbDateBottomSpaceToSuperview.constant = 13;
    }

0 个答案:

没有答案