澎湃iPad上线版本

GONMarkupFont.m 2.9KB

    // // GONMarkupFont.m // GONMarkupParserSample // // Created by Nicolas Goutaland on 25/06/14. // Copyright (c) 2014 Nicolas Goutaland All rights reserved. // #import "GONMarkupFont.h" #import "GONMarkup+Private.h" @interface GONMarkupFont () @end @implementation GONMarkupFont #pragma mark - Constructor + (instancetype)fontMarkup { return [self markupForTag:GONMarkupFont_TAG]; } #pragma mark - Style - (void)openingMarkupFound:(NSString *)tag configuration:(NSMutableDictionary *)configurationDictionary context:(NSMutableDictionary *)context attributes:(NSDictionary *)dicAttributes { NSString *value; // Font name value = [dicAttributes objectForKey:GONMarkupFont_TAG_name_ATT]; if (value) { // Look for size attribute CGFloat size; NSString *sizeValue = [dicAttributes objectForKey:GONMarkupFont_TAG_size_ATT]; if (sizeValue) { size = [sizeValue floatValue]; } else { UIFont *currentFont = [configurationDictionary objectForKey:NSFontAttributeName]; if (currentFont) size = currentFont.pointSize; else size = [UIFont systemFontSize]; } // Try to load font from registered ones UIFont *font = [self.parser fontForKey:value]; if (!font) { // No matching font found, try to load it by name font = [UIFont fontWithName:value size:size]; } else { // Font found, update its size font = [UIFont fontWithDescriptor:font.fontDescriptor size:[sizeValue floatValue]]; } // Update configuration [configurationDictionary setObject:font forKey:NSFontAttributeName]; return; } // Font size only value = [dicAttributes objectForKey:GONMarkupFont_TAG_size_ATT]; if (value) { // Extract size CGFloat size = [value floatValue]; // Look for current font UIFont *currentFont = [configurationDictionary objectForKey:NSFontAttributeName]; if (currentFont) { // Current font found, so update it with new size currentFont = [UIFont fontWithDescriptor:currentFont.fontDescriptor size:size]; } else { // No found defined, use default one with defined size currentFont = [UIFont systemFontOfSize:size]; } // Update configuration [configurationDictionary setObject:currentFont forKey:NSFontAttributeName]; return; } [configurationDictionary setObject:appFont([TPUserDefault instance].contFontSize, NO) forKey:NSFontAttributeName]; return; // Empty font parameter, reset configuration [configurationDictionary removeObjectForKey:NSFontAttributeName]; } @end