1. 程式人生 > >ios UITextView bug 輸入文字跳動bug問題 (・ˍ・*)

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