usar una tipografias tipografia que para moviles mejores mejor lettering google font elegantes diseño colores apps app aplicación aplicaciones aplicacion ios ios7 uifont

ios - tipografias - que colores usar para una app



¿Es posible usar Helvetica modificado de iOS 7 en aplicaciones? (3)

He aquí cómo hacerlo. Incluso leyendo la documentación, no está muy claro.

En primer lugar, debe obtener las características de una fuente, que le dará las constantes para usar en su UIFontDescriptorFeatureSettingsAttribute . Obtuve el mío de esta publicación .

Esto le proporciona claves de identificación de tipo de función y sus opciones para sus valores, las teclas de identificación del selector de funciones.

NSArray *timerDisplaySettings = @[ @{ UIFontFeatureTypeIdentifierKey: @(6), UIFontFeatureSelectorIdentifierKey: @(1) }, @{ UIFontFeatureTypeIdentifierKey: @(17), UIFontFeatureSelectorIdentifierKey: @(1) }];

luego se crea un descriptor de fuente añadiendo a un descriptor - de esta manera se puede especificar el nombre de la fuente y la familia a través de UIFont :

UIFont *font = [UIFont fontWithName:@"HelveticaNeue-UltraLight" size:32]; UIFontDescriptor *originalDescriptor = [font fontDescriptor]; UIFontDescriptor *timerDescriptor =[originalDescriptor fontDescriptorByAddingAttributes: @{ UIFontDescriptorFeatureSettingsAttribute: timerDisplaySettings }];

Luego, cierre el ciclo y cree la fuente con su descriptor. (El tamaño "0.0" simplemente significa que no estamos escalando desde su tamaño original de 32).

UIFont *timerFont = [UIFont fontWithDescriptor: timerDescriptor size:0.0];

Para iOS 7, Apple hizo una versión especial modificada de Helvetica Thin / Light que tiene períodos redondeados y dos puntos:

Compare esto con el uso de Helvetica-Neue Thin o Helvetica-Neue Light en Xcode:

¿Es posible desarrollar aplicaciones con la versión especial modificada con los puntos y coma redondeados?

EDITAR : Resulta que estos dos puntos y períodos redondos no son diseñados por Apple, son "personajes alternativos" y puedes verlos en tu visor de glifos de fuente favorito.


Por el bien de los lectores futuros, para ver la matriz de características de fuente, en Objective-C es:

@import CoreText;

y

- (void)fontFeatures:(UIFont *)font { NSArray *features = CFBridgingRelease(CTFontCopyFeatures((__bridge CTFontRef)font)); if (features) { NSLog(@"%@: %@", font.fontName, features); } }

Para HelveticaNeue-UltraLight que produce:

HelveticaNeue-UltraLight: ( { CTFeatureTypeIdentifier = 1; CTFeatureTypeName = Ligatures; CTFeatureTypeNameID = 258; CTFeatureTypeSelectors = ( { CTFeatureSelectorDefault = 1; CTFeatureSelectorIdentifier = 2; CTFeatureSelectorName = "Common Ligatures"; CTFeatureSelectorNameID = 259; } ); }, { CTFeatureTypeExclusive = 1; CTFeatureTypeIdentifier = 6; CTFeatureTypeName = "Number Spacing"; CTFeatureTypeNameID = 262; CTFeatureTypeSelectors = ( { CTFeatureSelectorDefault = 1; CTFeatureSelectorIdentifier = 0; CTFeatureSelectorName = "No Change"; CTFeatureSelectorNameID = 264; }, { CTFeatureSelectorIdentifier = 1; CTFeatureSelectorName = "Proportional Numbers"; CTFeatureSelectorNameID = 263; } ); }, { CTFeatureTypeExclusive = 1; CTFeatureTypeIdentifier = 17; CTFeatureTypeName = "Character Alternatives"; CTFeatureTypeNameID = 265; CTFeatureTypeSelectors = ( { CTFeatureSelectorDefault = 1; CTFeatureSelectorIdentifier = 0; CTFeatureSelectorName = "No Change"; CTFeatureSelectorNameID = 264; }, { CTFeatureSelectorIdentifier = 1; CTFeatureSelectorName = "Time Punctuation"; CTFeatureSelectorNameID = 266; }, { CTFeatureSelectorIdentifier = 2; CTFeatureSelectorName = "Compass Punctuation"; CTFeatureSelectorNameID = 267; }, { CTFeatureSelectorIdentifier = 3; CTFeatureSelectorName = "Weather Punctuation"; CTFeatureSelectorNameID = 268; }, { CTFeatureSelectorIdentifier = 4; CTFeatureSelectorName = "Round Lowercase Punctuation"; CTFeatureSelectorNameID = 269; } ); } )

Por lo tanto, en iOS 8, para HelveticaNeue-UltraLight , la clave 17 es "Alternativas de caracteres", y el valor 1 es "Puntuación de tiempo".

Para ver estas características en Swift, es:

import CoreText

y

func fontFeatures(font: UIFont) { if let features = CTFontCopyFeatures(font) as NSArray! { println("/(font.fontName): /(features)") } }