在iOS 9上,firstRectForRange:返回的值不正确

在iOS 9上,firstRectForRange:返回的值不正确,ios,uikit,uitextview,Ios,Uikit,Uitextview,在我们的应用程序中,我们使用UITextView显示AttributeText。在iOS 9上,firstRectForRange:和selectionRectsForRange:方法返回的值不正确 请注意,在iOS 10上,这两种方法都返回预期值 复制步骤: 1.在UITextView上设置一些attributedText。 2.使用以下代码获取textview中的“文本”框架 NSRange range = [textView.attributedText.string rangeO

在我们的应用程序中,我们使用UITextView显示AttributeText。在iOS 9上,firstRectForRange:和selectionRectsForRange:方法返回的值不正确

请注意,在iOS 10上,这两种方法都返回预期值

复制步骤: 1.在UITextView上设置一些attributedText。 2.使用以下代码获取textview中的“文本”框架

    NSRange range = [textView.attributedText.string rangeOfString:text];
    UITextPosition *beginning = textView.beginningOfDocument;
    UITextPosition *start = [textView positionFromPosition:beginning offset:range.location];
    UITextPosition *end = [textView positionFromPosition:start offset:range.length];
    UITextRange *textRange = [textView textRangeFromPosition:start toPosition:end];
    CGRect rect = [textView firstRectForRange:textRange];
  • 请注意,在iOS 9上,firstRectForRange:未返回正确的值,但在iOS 10上返回正确的值