2

在带有 iOS 8 和 iOS 9 的 iPod 5 / iPad 中运行以下代码会得到以下输出

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, width=50, height=19}

iOS 9 输出:{x=0, y=293, width=50, height=19.4}

iOS 9 中的 Y 坐标和高度已更改

UITextView 有什么变化吗?

检查随附的屏幕截图 在 iOS 8 中运行

在 iOS 9 中运行

4

0 回答 0