1

我通过情节提要创建了一个标签。顺序是这样的:视图 -> 滚动视图 -> 一堆标签。

这是我想要实现的文本输出: 2 December <30 days left>

<> 封闭的文本在不同的 UI 标签中以较小的字母显示。

由于月份名称是动态的并且宽度会发生变化,因此我尝试使用 CGRectMake 来更改 <> 封闭文本的位置。但它不起作用。我尝试更改函数的参数,但标签保持不变。它不会从情节提要中设置的初始位置移动。

label_days_left.frame = CGRectMake(50, 10, 100, 99);

编辑:

- (void) alignDaysLeft{
    //code to align the label just after the match date
    CGFloat dateLabelWidth = [label_date.text sizeWithFont:label_date.font].width;
    CGFloat dateLabelHeight = [label_date.text sizeWithFont:label_date.font].height;
    CGFloat someGap = 0;
    CGFloat daysLeftX = label_date.frame.origin.x + dateLabelWidth + someGap;
    CGFloat daysLeftY = label_date.frame.origin.y;
    [label_date sizeToFit];
    //label_days_left.frame = CGRectMake(daysLeftX, daysLeftY, 100, dateLabelHeight);
    label_days_left.frame = CGRectMake(50, 10, 100, 99);
    label_days_left.text = [NSString stringWithFormat:@"lolo"];
    NSLog(@"date width - %f", daysLeftX);

}

label_date 是包含月份和日期的变量。label_days_left 是我试图放在月份旁边的标签变量。

编辑2: 框架

编辑 3:我创建了一个新项目。在视图上拖了一个标签。创建了一个出口。合成了它。

并使用以下代码移动它 -

[labia setFrame:CGRectMake(0, 100, 5, 99)];

它没有用。我在做什么错?

4

2 回答 2

8

您是否打开了自动布局?如果是这样,那可能是您的问题,因为您不应该担心使用 AutoLayout 设置框架,而是设置约束。

于 2013-05-27T23:39:28.420 回答
1
NSString *someString = [NSString stringWithFormat:@"%@",label_date.text]
UIFont *yourFont = [UIFont systemFontOfSize:22.0];
CGSize stringBoundingBox = [someString sizeWithFont:yourFont];
[label_days_left setFrame:CGRectMake(label_days_left.frame.origin.x, 10, stringBoundingBox.width, 99)];
[label_days_left setText:someString];

请尝试一次....

于 2013-05-27T06:41:24.373 回答