2012-03-02 75 views
1

因此,我沿着“时间线”动态地将UILabels添加到视图。我想要做的是弄清楚如何将下一个UILabel的起始坐标放置在最后一个像素的哪个像素之后。我很难找出最后一个结束的地方。我看了一些类似的问题,我似乎无法理解如何去做。一切都在for循环中进行,所以我可以在每个循环中更新xcoordinate变量,但我需要知道如何获取标签大小。有人有主意吗?我试过,但它似乎没有工作:如何找到UILabel的结束坐标?

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; 

回答

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

我会成立后的帧你改变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); 
1

可以使用的功能:CGRectGetMaxXCGRectGetMaxY

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