2012-03-02 51 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));