2012-08-25 4 views
1

В настоящее время я рисую текст на строке, используя drawInRect, ограниченный размером с использованием CGRectSize. Он также сосредоточен.Получение границ NSString с помощью drawInRect

[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

Вы хотите метод из категории UIKit на NSString ...

- (CGSize)sizeWithFont:(UIFont *)font 

, который дает вам размер, необходимый, а затем вы можете рассчитать свои центрирования (или другие) позиции.

Смежные вопросы