UITextView iOS 7的行数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UITextView iOS 7的行数相关的知识,希望对你有一定的参考价值。

ios 6中,我使用此代码来获取UITextView中的行数:

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

但这在iOS 7中不起作用。如何获得iOS 7中UITextView的总行数?

答案

你可以使用这样的东西。这是低性能,但这是我现在可以想到的。

NSString *string=textView3.text;
NSArray *array=[string componentsSeparatedByString:@"
"];
NSLog(@"%d",array.count);
另一答案

您可以使用UITextView的UITextInputTokenizer / UITextInput协议方法执行此操作。

id<UITextInputTokenizer> tokenizer = textView.tokenizer;
UITextPosition *pos = textView.endOfDocument; int lines = 0;

while (true){
    UITextPosition *lineEnd = [tokenizer positionFromPosition:pos toBoundary:UITextGranularityLine inDirection:UITextStorageDirectionBackward];

    if([textView comparePosition:pos toPosition:lineEnd] == NSOrderedSame){
        pos = [tokenizer positionFromPosition:lineEnd toBoundary:UITextGranularityCharacter inDirection:UITextStorageDirectionBackward];

        if([textView comparePosition:pos toPosition:lineEnd] == NSOrderedSame) break;

        continue;
    }

    lines++; pos = lineEnd;
}

//lines--; // Compensation for extra line calculated (??)

(Qazxswpoi)

另一答案

您可以将String和textView传递给此方法,即使用户按下新行,它也会返回此textview中的当前数字行:

GIST

以上是关于UITextView iOS 7的行数的主要内容,如果未能解决你的问题,请参考以下文章

以有限的行数滚动 UITextView 中的内容

UITextView 的动态角半径

iphone UitextView 文本被截断

iOS中求出label中文字的行数和每一行的内容

UITextView 的最大行数限制是多少

IOS:UITextView 旋转 iOS 7 换行文本