I'm not a Sparrow expert, but embedding UILabel is probably not an ideal solution, as the use of standard UI items normally puts them in front of all other content generated by Sparrow e.g SPImage, SPSprite , SPTextField etc etc
There can also be problems with orientation i.e if the sparrow content is rotated to Landscape or inverted portrait etc.
I took a quick look at the code you linked to and also in SPTextField to see how they both did the rendering, and they both appear to use completely different core technologies to render the text. Sparrow seems to use UIKit to render the text to a Texture, where as OHAttributedText seems to use CoreText framework.
So on the face of it, OHAttibutedText doesn't look like it would be easy to integrate into SPTextfield.
So if you can live with your formatted text on top of everything else, using UILabel etc is probably the quickest / easiest solution.
If you have to have other Sparrow stuff on top of your text, I'd probably try to write a class that generates a load of SPTextfields, and sticks them in the correct location to give the appearance of one complete piece of formatted text.
But I'm aware that text metrics stuff can be very hard to get right 😉