ios ios8 xcode6 uifontdescriptor

Font Descriptor devuelve nil en iOS 8



ios8 xcode6 (2)

El siguiente código funciona bien en iOS 7, pero no devuelve letra negrita o cursiva en iOS 8. Está bien para Helvetica Neue, pero no funciona para fuente Arial.

UIFontDescriptor *descriptor1 = [UIFontDescriptor fontDescriptorWithFontAttributes:@{UIFontDescriptorFamilyAttribute: @"Arial"}]; UIFontDescriptor* boldFontDescriptor1 = [descriptor1 fontDescriptorWithSymbolicTraits:UIFontDescriptorTraitBold]; UIFont* font1 = [UIFont fontWithDescriptor:boldFontDescriptor1 size:16.0]; [self.lblArialB setFont:font1];

Probado en el dispositivo y el simulador y el mismo error.


FWIW, esta es la solución que se me ocurrió, usando el inicializador de diccionario de atributos de UIFontDescriptor en lugar de la fuente con errores FontDescriptorWithSymbolicTraits:

NSString *fontFamily = @"Arial"; BOOL isBold = YES; BOOL isItalic = YES; CGFloat fontSize = 20.0; UIFontDescriptor *fontDescriptor = [UIFontDescriptor fontDescriptorWithFontAttributes: @{ @"NSFontFamilyAttribute" : fontFamily, @"NSFontFaceAttribute" : (isBold && isItalic ? @"Bold Italic" : (isBold ? @"Bold" : (isItalic ? @"Italic" : @"Regular"))) }]; UIFont *font = [UIFont fontWithDescriptor:fontDescriptor size:fontSize];


Para mí, el fontDescriptorWithFontAttributes funciona igual que antes, pero el fontDescriptorWithSymbolicTraits falla miserablemente. Lo resolví volviendo a usar [UIFont fontWithName: size:]

[self.titleLabel setFont:[UIFont fontWithName:@"PTSans-Bold" size:47.67]];