¿Cómo mostrar el carácter superíndice% como una cadena en UIlabel?

¿Cómo mostrar el carácter superíndice% como una cadena en UIlabel? Sé que% no existe en unicode como superíndice, pero ¿hay alguna manera de que podamos mostrar% como superíndice en lugar de usar tags html?

Encontré esta publicación en Stackoverflow en text de estilo superíndice usando una cadena atribuida:

NSAttributedString estilo de superíndice

Entonces, usando eso, hacké esta demo:

- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIFont *font = [UIFont fontWithName:@"Helvetica" size:20]; UILabel *textBlock1 = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height / 2.0)]; textBlock1.backgroundColor = [UIColor colorWithRed:0.9 green:0.9 blue:0.9 alpha:1.0]; textBlock1.textAlignment = NSTextAlignmentCenter; textBlock1.font = font; textBlock1.text = @"57%"; UILabel *textBlock2 = [[UILabel alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height / 2.0, self.view.bounds.size.width, self.view.bounds.size.height / 2.0)]; textBlock2.backgroundColor = [UIColor colorWithRed:0.9 green:0.9 blue:0.9 alpha:1.0]; textBlock2.textAlignment = NSTextAlignmentCenter; NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:@"57%" attributes:@{NSFontAttributeName: font}]; [attributedString setAttributes:@{NSFontAttributeName : [UIFont fontWithName:@"Helvetica" size:10] , NSBaselineOffsetAttributeName : @10} range:NSMakeRange(2, 1)]; textBlock2.attributedText = attributedString; [self.view addSubview:textBlock1]; [self.view addSubview:textBlock2]; } 

El resultado:

introduzca la descripción de la imagen aquí

Para una solución simple de usar Swift , es posible que desee pagar HandyUIKit . Después de importarlo a su proyecto (por ejemplo, a través de Carthage, consulte las instrucciones en README) puede hacer algo como esto:

 import HandyUIKit "57^{%}".superscripted(font: UIFont.systemFont(ofSize: 20, weight: .medium)) 

Esta línea devolverá un NSAttributedString que se verá exactamente como lo que está buscando . ¡Simplemente UILabel a una propiedad de attributedText UILabel y eso es todo!


Si está buscando suscribir un text, simplemente use subscripted(font:) lugar. Reconocerá estructuras como CO_{2} . También hay superAndSubscripted(font:) si quieres combinar ambos .

Consulte los documentos para get más información y ejemplos adicionales.