最近在项目中遇到UITextView在ios7上出现编辑进入最后一行时光标消失,看不到最后一行,变成盲打,stackOverFlow网站上有大神指出,是ios7本身bug,加上下面一段代码即可:
1-(void)textViewDidChange:(UITextView *)textView {2CGRect line =[textView caretRectForPosition:3textView.selectedTextRange.start];4CGFloat overflow = line.origin.y +line.size.height5- ( textView.contentOffset.y +textView.bounds.size.height6- textView.contentInset.bottom -textView.contentInset.top );7if( overflow >0) {8//We are at the bottom of the visible text and introduced a line feed, scroll down (iOS 7 does not do it)9//Scroll caret to visible area10CGPoint offset =textView.contentOffset;11offset.y += overflow +7;//leave 7 pixels margin12//Cannot animate with setContentOffset:animated: or caret will not appear13[UIView animateWithDuration:.2animations:^{14[textView setContentOffset:offset];15}];16}17}