CGRect метода firstRectForRange в UITextView возвращает неправильную позицию кадра в iOS 9

Выполнение приведенного ниже кода в iPod 5 / iPad с iOS 8 и iOS 9 дает следующий вывод

CGRect textViewFrame;
if(IS_IPHONE_5)
    textViewFrame = CGRectMake(0.0f, 64.0f, 320.0f, 390.0f);
else
    textViewFrame = CGRectMake(0.0f, 64.0f, 320.0f, 320.0f);
textViewText = [[UITextView alloc] initWithFrame:textViewFrame];
textViewText.returnKeyType = UIReturnKeyDone;
textViewText.delegate = self;
textViewText.backgroundColor = [UIColor clearColor];
[self.view addSubview:textViewText];

[self.textViewText setFont:[UIFont fontWithName:@"PT Mono" size:16]];
[self.textViewText setTextColor:[UIColor colorWithRed:32.0f/255.0f green:32.0f/255.0f blue:32.0f/255.0f alpha:1]];    
 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];
rect.size.width = rect.size.width + 2;
rect.origin.x = rect.origin.x - 1;

return [textView convertRect:rect fromView:textView.textInputView];

CGRect rect = [textView firstRectForRange: textRange]; // Проблема здесь

Вывод iOS 8: {x=0, y=201, ширина =50, высота =19}

Вывод iOS 9: {x=0, y=293, ширина =50, высота = 19.4}

Y кординат и высота изменена в iOS 9

Что-нибудь изменилось в UITextView?

Проверьте прикрепленный скриншот Запуск в iOS 8

Запуск в iOS 9

0 ответов

Другие вопросы по тегам