Most of the answers+examples are in ObjC, but this is how to do it in Swift.
let font:UIFont? = UIFont(name: "Helvetica", size:20)
let fontSuper:UIFont? = UIFont(name: "Helvetica", size:10)
let attString:NSMutableAttributedString = NSMutableAttributedString(string: "6.022*1023", attributes: [.font:font!])
attString.setAttributes([.font:fontSuper!,.baselineOffset:10], range: NSRange(location:8,length:2))
labelVarName.attributedText = attString
This gives me:

In a more detailed explanation:
- Get
UIFontyou want for both the default and superscript style, superscript must be smaller. - Create a
NSMutableAttributedStringwith the full string and default font. - Add an attribute to the characters you want to change (
NSRange), with the smaller/subscriptUIFont, and theNSBaselineOffsetAttributeNamevalue is the amount you want to offset it vertically. - Assign it to your
UILabel
Hopefully this helps other Swift devs as I needed this as well.