您的位置:首页 > 产品设计 > UI/UE

UITextView汉字光标问题

2015-09-18 17:15 381 查看
有可能是系统的bug,iOS9下面是没有该问题的。就是输入汉字,位置出错,被挡住。经过Google解决办法有两个:

1,self.textview.layoutManager.allowsNonContiguousLayout = NO;

2,

- (void)textViewDidChangeSelection:(UITextView *)textView {

[textView scrollRangeToVisible:textView.selectedRange];

}

还有部分指的是下面一个函数,暂未实验,先放在这里。

- (void)textViewDidChange:(UITextView *)textView {

CGRect line = [textView caretRectForPosition:

textView.selectedTextRange.start];

CGFloat overflow = line.origin.y + line.size.height -

(textView.contentOffset.y +

textView.bounds.size.height -

textView.contentInset.bottom -

textView.contentInset.top );

if ( overflow > 0 )

{

// We are at the bottom of the visible text and introduced

// a line feed, scroll down (iOS 7 does not do it)

// Scroll caret to visible area

CGPoint offset = textView.contentOffset;

offset.y += overflow + 7; // leave 7 pixels margin

// Cannot animate with setContentOffset:animated:

// or caret will not appear

[UIView animateWithDuration:.2 animations:^{

[textView setContentOffset:offset];

}];

}

}

文章链接:

http://www.4byte.cn/question/198472/uitextview-scrolling-up-after-deleting-inserting-text.html

http://petersteinberger.com/blog/2014/fixing-uitextview-on-ios-7/

http://stackoverflow.com/questions/19259886/uitextview-cursor-not-positioning-properly-when-editing-in-ios-7-why

http://justabunchoftyping.com/fix-for-ios7-uitextview-issues
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: