2013-06-03 52 views
1

我有一個UITextView最多有四行。我想把UILabels放在每一行的後面,只包含相應行的文本。如何計算UITextview的多行寬度?

那麼,你們中的任何一位優秀的編碼人員對我如何計算每條線的寬度有任何想法?

+0

谷歌'的NSString UIKit的extensions' ,然後 + ,海rch代表'size'。 – 2013-06-03 05:16:04

回答

3

試試這個

UIFont *font=[UIFont systemFontOfSize:17.0f]; 

UILabel *yourLabel=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 80)]; 
yourLabel.numberOfLines=4; 
[email protected]"Hello\nHulo\nMe\nyou"; 

CGSize labelSize = [yourLabel.text sizeWithFont:font 
           constrainedToSize:yourLabel.frame.size 
            lineBreakMode:NSLineBreakByTruncatingTail]; 
CGFloat singleLineHeight = labelSize.height/yourLabel.numberOfLines; 


[self.view addSubview:yourLabel]; 

單行高度將是約21

NSLog(@"single line height is %f",singleLineHeight); 

對於文本查看遵循這個代碼

UITextView *yourView=[[UITextView alloc] initWithFrame:CGRectMake(0, 0, 100, 20)]; 
yourView.font=[UIFont systemFontOfSize:14.0f]; 
yourView.text = @"Hello \nmy\n Friend\n Hru? "; 

CGSize textViewSize = [yourView.text sizeWithFont:yourView.font 
         constrainedToSize:CGSizeMake(yourView.frame.size.width, FLT_MAX) 
          lineBreakMode:NSLineBreakByTruncatingTail]; 

[yourView setFrame:CGRectMake(0, 0, textViewSize.width, textViewSize.height)]; 

[self.view addSubview:yourView]; 

NSLog(@"single line height is %f",yourView.frame.size.height); 
+0

這可以很好地獲得高度。我能做些額外的事情來獲得每一行的寬度? – liquidpenguins

+0

你意味着你想獲得單線的高度和寬度 – Warewolf

+0

等待幾分鐘 – Warewolf