UITextView计数行未按预期工作

时间:2014-03-10 12:36:02

标签: uitextview line line-count

我正在尝试获取TextView中的行数。我在这里搜索了一个解决方案,基本上每个线程都有相同的答案:contentheight / fontlineheight。

我有{8}行的TextView,我运行此代码,我得到contsize : 1.944413

NSLog(@"contsize : %f", descLabel.contentSize.height/descLabel.font.lineHeight);

我做错了什么?

1 个答案:

答案 0 :(得分:1)

对于iOS7,这个版本要注意你可以在UITextView中使用不同的字体(和字体大小):

- (NSUInteger)numberOfLinesInTextView:(UITextView *)textView
{
    NSLayoutManager *layoutManager = [textView layoutManager];
    NSUInteger index, numberOfLines;
    NSRange glyphRange = [layoutManager glyphRangeForTextContainer:[textView textContainer]];
    NSRange lineRange;

    for (numberOfLines = 0, index = glyphRange.location; index < glyphRange.length; numberOfLines++){
        (void) [layoutManager lineFragmentRectForGlyphAtIndex:index
                                               effectiveRange:&lineRange];
        index = NSMaxRange(lineRange);
    }
    return numberOfLines;
}