2012-08-25 28 views
1

我目前使用drawInRect在字符串上繪製文本,限制爲使用CGRectSize的大小。它也是中心的。獲取使用drawInRect打印出來的NSString的範圍

[text drawInRect:CGRectMake(0,0,nWidth,nHeight) withFont:font lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentCenter]; 

我需要找出的是實際繪製文本的大小和偏移量。 因爲它是居中的,所以在繪製文本之前很有可能會出現X偏移量。

我看過命令boundingRectWithSize但我認爲可能不支持IOS?

回答

1

獲取文本的大小,

CGSize size = [text sizeWithFont:font constrainedToSize:CGRectMake(0,0,nWidth,nHeight) lineBreakMode: UILineBreakModeWordWrap]; 

(見documentation

然後,因爲它爲中心,界限將

CGRect bounds = CGRectMake((nWidth - size.width)/2, ..., size.width, size.height); 
+0

完美,那種明顯的一次你說的! –

0

你想從NSString的該類別的UIKit它給你所需要的大小的方法...

- (CGSize)sizeWithFont:(UIFont *)font 

,然後你可以計算你的定心(或其他方式)的位置。