ttf font custom iphone ios font-size uifont

iphone - ttf - uifont custom font



Cómo obtener el tamaño de fuente o una versión en negrita de la instancia de UIFont (7)

Esta es la forma más fácil de encontrar el tamaño de fuente

UIFont *anyFont; //initialization and other stuff here

Ahora en algún momento quieres encontrar su tamaño

CGFloat fontSize= [anyFont pointSize];

¿Cómo obtener el tamaño de fuente de una instancia de UIFont?

O, si alguien puede implementar este método para UIFont?

- (UIFont *)boldFont;


Para acceder al tamaño de fuente desde tu instancia de UIFont usa

@property(nonatomic, readonly) CGFloat pointSize

Hay más propiedades para decir el tamaño de la fuente (para el límite, pequeño, etc.)

capHeight,xHeight,pointSize

Use debajo para acceder a la fuente en negrita

UIFont* myboldFont = [UIFont boldSystemFontOfSize:11];


Puede verificar en negrita con Core Text. Use kCTFontBoldTrait .


Swift 3 versión de la share rafał-augustyniak

extension UIFont { func boldFont() -> UIFont? { let fontDescriptor = self.fontDescriptor let fontDescriptorSymbolicTraits: UIFontDescriptorSymbolicTraits = [ fontDescriptor.symbolicTraits, .traitBold ] guard let boldFontDesc = fontDescriptor.withSymbolicTraits(fontDescriptorSymbolicTraits) else { return nil } return UIFont(descriptor: boldFontDesc, size: pointSize) } }


Use los métodos NSString+UIKit para medir el tamaño de una cadena con una fuente determinada.

El iPhone trata las fuentes normales y en negrita del mismo nombre como fuentes completamente separadas, y como tal, no hay una forma sencilla de convertirlas. Por ejemplo, ArialMT y Arial-BoldMT se consideran fuentes completamente diferentes por el sistema operativo.

EDIT: es posible que haya malentendido tu pregunta. ¿Quizás estás buscando la propiedad pointSize de UIFont?


UIFontDescriptor es una clase bastante poderosa y se puede utilizar para obtener la versión en negrita de la fuente que desee. Debe ser totalmente seguro y estar a prueba en el futuro, ya que solo requiere el uso de API pública y no depende de ninguna modificación de cadena.

Aquí está el código en Swift 3:

extension UIFont { func bold() -> UIFont? { let fontDescriptorSymbolicTraits: UIFontDescriptorSymbolicTraits = [fontDescriptor.symbolicTraits, .traitBold] let bondFontDescriptor = fontDescriptor.withSymbolicTraits(fontDescriptorSymbolicTraits) return bondFontDescriptor.flatMap { UIFont(descriptor: $0, size: pointSize) } } }

Aquí está el código en Objective-C:

@implementation UIFont (RABoldFont) - (UIFont *)ra_boldFont { UIFontDescriptor *fontDescriptor = [self fontDescriptor]; UIFontDescriptorSymbolicTraits traits = fontDescriptor.symbolicTraits; traits = traits | UIFontDescriptorTraitBold; UIFontDescriptor *boldFontDescriptor = [fontDescriptor fontDescriptorWithSymbolicTraits:traits]; return [UIFont fontWithDescriptor:boldFontDescriptor size:self.pointSize]; } @end


Esta es una respuesta antigua y ya no es la mejor solución. Consulte la respuesta aceptada.

-(UIFont *)boldFont{ //First get the name of the font (unnecessary, but used for clarity) NSString *fontName = self.fontName; //Some fonts having -Regular on their names. so we have to remove that before append -Bold / -BoldMT fontName = [[fontName componentsSeparatedByString:@"-"] firstObject]; //Then append "-Bold" to it. NSString *boldFontName = [fontName stringByAppendingString:@"-Bold"]; //Then see if it returns a valid font UIFont *boldFont = [UIFont fontWithName:boldFontName size:self.pointSize]; //If it''s valid, return it if(boldFont) return boldFont; //Seems like in some cases, you have to append "-BoldMT" boldFontName = [fontName stringByAppendingString:@"-BoldMT"]; boldFont = [UIFont fontWithName:boldFontName size:self.pointSize]; //Here you can check if it was successful, if it wasn''t, then you can throw an exception or something. return boldFont; }