2014-09-08 6 views
0

У меня есть UITextView, который не отображает весь текст в нем, поэтому вам нужно прокрутить, чтобы прочитать больше. Я хотел бы получить количество строк в UITextView. Я попытался найти способ, но все, что я мог найти, это только, если вы показываете весь текст, чтобы получить количество строк.UITextView Количество строк, когда не отображается полный текст (ios7)

autoLayout включен.

мой код выглядит следующим образом:

CGRect textViewFrame = CGRectMake(20.0f, 20.0f, 280.0f, 124.0f); 
UITextView *textView = [[UITextView alloc] initWithFrame:textViewFrame]; 
textView.returnKeyType = UIReturnKeyDone; 
textView.delegate = self; 
[self.view addSubview:textView]; 
[self contentSizeRectForTextView:textView]; 
[email protected]"very long text"; 

я попробовал:

UIFont *font = [UIFont boldSystemFontOfSize:11.0]; 
CGSize size = [textView.text sizeWithFont:font 
         constrainedToSize:textView.frame.size 
          lineBreakMode:NSLineBreakByWordWrapping]; 
float numberOfLines = size.height/font.lineHeight; 
NSLog(@"%f", numberOfLines); 

но это дает только количество линий показал, как:

float rows = round((textView.contentSize.height - textView.textContainerInset.top - textView.textContainerInset.bottom)/textView.font.lineHeight); 

Спасибо аванс

+0

Неясно. Вы хотите определить количество строк, которые видны в текстовом представлении на основе его текущего размера, или вы хотите узнать, сколько строк текста (как видимых, так и скрытых) в текстовом представлении? – rmaddy

+0

Я хочу знать, сколько строк текста (как видимых, так и скрытых), с ответом Бенджибуна мне удалось показать весь текст, получить количество строк и изменить его размер снова, должен быть лучший способ, я верю – Dante

ответ

0

tr y это!

int numLines = textview.contentSize.height/textview.font.lineHeight; 

подрегулировать кадр:

CGFloat fixedWidth = textView.frame.size.width; 
CGSize newSize = [textView sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)]; 
CGRect newFrame = textView.frame; 
newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height); 
textView.frame = newFrame; 

textview.scrollEnabled = NO; 
+0

Он возвращает только количество строк, отображаемых в рамке textView – Dante

+0

, обновленный ответ. – Bejibun

+0

Он будет работать только в том случае, если autoLayout выключен, и я использую его, плохо обновите свой вопрос. – Dante

0

Вы можете использовать UIScrollView и добавить UITextView, как подвид. В этом случае свиток изменит размер в соответствии с текстом внутри UITextView