UITextView未显示全文时的行数(ios7)

时间:2014-09-08 20:55:05

标签: ios objective-c ios7

我有一个UITextView没有显示其中的所有文字,所以你需要滚动阅读更多内容。我想获得UITextView中的行数。我试图找到怎样但我能找到的只有你显示所有文字以获得行数。

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];
textView.text=@"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 );

提前致谢

2 个答案:

答案 0 :(得分:0)

试试这个!

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;

答案 1 :(得分:0)

您可以使用UIScrollView并将UITextView添加为子视图。在这种情况下,滚动将根据UITextView

中的文本更改大小