如何找到UILabel的终点坐标?

时间:2012-03-02 19:34:03

标签: iphone objective-c

所以我动态地将UILabel添加到“时间轴”的视图中。我想要做的是弄清楚如何将下一个UILabel的起始坐标放在最后一个像素的几个像素之后。我很难搞清楚最后一个结束的地方。我看了几个类似的问题,我似乎无法掌握如何做到这一点。一切都在for循环中进行,所以我可以在每个循环中更新xcoordinate变量,但我需要知道如何获得标签大小。有人有主意吗?我试过这个,但似乎没有用:

UILabel *title = [[UILabel alloc]initWithFrame:CGRectMake(labelsXpoint, 
                                                        topLabelYpoint,
                                                        labelWidth,
                                                        20)];

    CGSize labelSize = [title.text sizeWithFont:title.font constrainedToSize:title.frame.size  
                             lineBreakMode:title.lineBreakMode];
labelsXpoint += labelSize.width;

3 个答案:

答案 0 :(得分:1)

这就是你如何获得最右边的&标题标签的右下角坐标:

CGPoint topRight = CGPointMake(title.frame.origin.x + title.frame.size.width, title.frame.origin.y);
CGPoint bottomRight = CGPointMake(title.frame.origin.x + title.frame.size.width, title.frame.origin.y + title.frame.size.height);

答案 1 :(得分:1)

我会在你改变labelsXpoint之后设置框架。类似的东西:

UILabel *title = [[UILabel alloc]init];

CGSize labelSize = [title.text sizeWithFont:title.font constrainedToSize:title.frame.size lineBreakMode:title.lineBreakMode];
labelsXpoint += labelSize.width;

title.frame = CGRectMake(labelsXpoint, topLabelYpoint, labelWidth, 20);

答案 2 :(得分:1)

您可以使用以下功能:CGRectGetMaxXCGRectGetMaxY

CGPoint topRight = CGPointMake(CGRectGetMaxX(title.frame), title.frame.origin.y);
CGPoint bottomRight = CGPointMake(CGRectGetMaxX(title.frame), CGRectGetMaxY(title.frame));