It is correct that UILabel does not expose the TextKit stack, so you can't set an exclusion path.
However, you don't really need UILabel; it is easy to draw directly with TextKit into a rectangular graphics context, and now you can set an exclusion path (because you are drawing with TextKit). To draw with TextKit, just build the text kit "stack", customizing in any way you like, and then, when it's time to draw, call the layout manager's drawBackgroundForGlyphRange:...
and drawGlyphsForGlyphRange:...
.