title: UITextView vs UILabel+ScrollView
body: <p>Im working on a an app that requires a view Controller to display a nice amount of hebrew(non-english) text in it. </p>
  
  <p><em>The text is an AttributedString from a Rich Text File</em></p>
  
  <p>There are 4 things that I need the view to do.</p>
  
  <ol>
  <li><p>Smooth Scrolling </p></li>
  <li><p>Get the range of a word so I can auto-scroll to it (like <code>scrollRangeToVisible</code>)</p></li>
  <li><p>Change the font smoothly (I'd like to use a UISlider to change the font)</p></li>
  <li><p>Load quickly</p></li>
  </ol>
  
  <p>In a sense Im looking for the capabilities of a e-reader just I only need one column and I want it to scroll not page. </p>
  
  <p>Things I've tried and there pros and cons</p>
  
  <p><strong>Regular UITextView &amp; Scrollview Classed as UITextView</strong> </p>
  
  <p>PROS: </p>
  
  <ul>
  <li>Easy search and auto-scroll</li>
  <li>Quick load</li>
  <li>Smooth font changing</li>
  </ul>
  
  <p>CON: </p>
  
  <ul>
  <li>Very choppy scrolling</li>
  </ul>
  
  <p><strong>UILabel in a ScrollView</strong></p>
  
  <p>PROS: </p>
  
  <ul>
  <li>search and auto-scroll is not easy but manageable </li>
  <li>Very smooth scrolling</li>
  </ul>
  
  <p>CON: </p>
  
  <ul>
  <li>Very choppy font switching</li>
  <li>Slow loading</li>
  </ul>
  
  <p>The only thing I haven't tried (that I can think of) is <em>CoreText</em></p>
  
  <p>Is coreText the way to go? I would rather use a UITextView if there as a way to get it to render lots of hebrew (non-english) text better. </p>
  
  <p><em>Note: I have already tried disabling editing on the UITextView and Selectable.</em></p>
  
  <p><strong>EDIT 1</strong> </p>
  
  <pre><code>-(double)Height{
      [layoutManager glyphRangeForTextContainer:textContainer];
      NSLog(@"HEIGHT = %f",[layoutManager
                            usedRectForTextContainer:textContainer].size.height);
      return [layoutManager
              usedRectForTextContainer:textContainer].size.height;
  }
  </code></pre>