ios UITextView bug 输入文字跳动bug问题 (・ˍ・*)


ios UITextView 输入中文时文字跳动问题

当输入中文文字多于显示的textview框时,最后一行的文字有时候会因为输入的时候而跳动把最后一行的文字盖住一半,再输入时却又跳起来显示

这是什么诡异的bug,在调整公司项目的时候,出现了这个问题(♯▼皿▼)

以前没碰到过.特么的我还以为是公司自定义的textview有问题,重写了之后还是存在这个问题,于是我新建了个新的项目专门调试这个textview.

调试完我只想说一个字(`皿´#)@"操操操操操操操操操操操操操操操操操!!!";

百度后才知道原来tm的是ios7本身bug!!

但是我...我用的是ios8哇哇哇哇哇哇哇哇哇哇哇哇,操尼玛的.(╯‵□′)╯︵┴─┴


后来在百度上找到了这个,原谅我英语不好不能找谷歌... (>_<、) 

下面是转自某博,地址:http://my.oschina.net/joanfen/blog/140143      ps:侵删(′ ︿ `)

iOS7光标问题

PS:有网友遇到textView在ios7上出现编辑进入最后一行时光标消失,看不到最后一行,变成盲打,stackOverFlow网站上有大神指出,是ios7本身bug,加上下面一段代码即可(网友调试得出,在此mark一下,有问题,欢迎大神们指出)

<span style="color:#3366ff;"><span style="font-size:10px;">-(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];
        }];
    }
}</span></span>


有大神写出这个方法我是给拜了( ̄. ̄),但是又引起另一个bug我也是醉了╥﹏╥,

bug是这样的,粘贴完文字...会导致文字后方出现一大片空白,需要人工滑动一下,才回到上面文字的最后一行光标处,粘贴的文字越多空白也会越多...

到现在还没找到解决的方法,虽然大神的方法是不会盖住后面一行的文字,但还是会有小跳动.(/ˍ・、)

已经找到解决方法:

如下 

textView.layoutManager.allowsNonContiguousLayout = NO;

这句代码设置了 UITextView 中的 layoutManager(NSLayoutManager) 的是否非连续布局属性,默认是 YES,设置为 NO 后 UITextView 就不会再自己重置滑动了。


在这个博主里找到的

http://www.isaced.com/post-266.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值