所以我动态地将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;
答案 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)
您可以使用以下功能:CGRectGetMaxX
和CGRectGetMaxY
:
CGPoint topRight = CGPointMake(CGRectGetMaxX(title.frame), title.frame.origin.y);
CGPoint bottomRight = CGPointMake(CGRectGetMaxX(title.frame), CGRectGetMaxY(title.frame));