Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ios - iOS 7 UITextView is slow after typing lots of text

Tags:

I'm having trouble with a slowdown that occurs in UITextView on iOS 7 when typing lots of text. I put a tracer in NSLayoutManager and identified that drawGlyphsForGlyphRange runs N*2 times, where N is the number of times your lines word-wrapped.

Here is the sample code:

https://github.com/philipkd/UITextViewSlow

To reproduce the problem run it on an iPad and attach a physical keyboard. Mash the letters and the space bar for about 15 seconds, and notice it slows down. Then when you try to type normally, it's really slow. That's an extreme example, but if you just try typing two paragraphs at a reasonable speed, it'll jam up.

This is not a problem with UITextView on iOS 6.

like image 845
philipkd Avatar asked Feb 28 '14 02:02

philipkd


1 Answers

Turn off Background App Refresh in Settings General. Also, get rid of NSLog--they slow down beyond what it takes them to print.

I was able to reproduce the slow down effect on iPad under IOS7. In fact IOS6 did not have Background App Refresh.

I believe Apple aims for top of the line models, all others have to adjust.

like image 142
matrix3003 Avatar answered Oct 22 '22 12:10

matrix3003