Skip to content

Commit

Permalink
[iOS] fix handling kerning, wordSpacing and letterSpacing when Number
Browse files Browse the repository at this point in the history
  • Loading branch information
msand committed Apr 22, 2019
1 parent 0835b50 commit c343229
Showing 1 changed file with 31 additions and 16 deletions.
47 changes: 31 additions & 16 deletions ios/Text/RNSVGFontData.m
Original file line number Diff line number Diff line change
Expand Up @@ -84,25 +84,40 @@ + (instancetype)initWithNSDictionary:(NSDictionary *)font
NSString* decoration = [font objectForKey:TEXT_DECORATION];
data->textDecoration = decoration ? RNSVGTextDecorationFromString(decoration) : parent->textDecoration;

NSString* kerning = [font objectForKey:KERNING];
data->manualKerning = (kerning || parent->manualKerning );
CGFloat fontSize = data->fontSize;
data->kerning = kerning ?
[RNSVGFontData toAbsoluteWithNSString:kerning
fontSize:fontSize]
: parent->kerning;
id kerning = [font objectForKey:KERNING];
data->manualKerning = (kerning || parent->manualKerning );
if ([kerning isKindOfClass:NSNumber.class]) {
NSNumber* kern = kerning;
data->kerning = (CGFloat)[kern doubleValue];
} else {
data->kerning = kerning ?
[RNSVGFontData toAbsoluteWithNSString:kerning
fontSize:fontSize]
: parent->kerning;
}

NSString* wordSpacing = [font objectForKey:WORD_SPACING];
data->wordSpacing = wordSpacing ?
[RNSVGFontData toAbsoluteWithNSString:wordSpacing
fontSize:fontSize]
: parent->wordSpacing;
id wordSpacing = [font objectForKey:WORD_SPACING];
if ([wordSpacing isKindOfClass:NSNumber.class]) {
NSNumber* ws = wordSpacing;
data->wordSpacing = (CGFloat)[ws doubleValue];
} else {
data->wordSpacing = wordSpacing ?
[RNSVGFontData toAbsoluteWithNSString:wordSpacing
fontSize:fontSize]
: parent->wordSpacing;
}

NSString* letterSpacing = [font objectForKey:LETTER_SPACING];
data->letterSpacing = letterSpacing ?
[RNSVGFontData toAbsoluteWithNSString:letterSpacing
fontSize:fontSize]
: parent->letterSpacing;
id letterSpacing = [font objectForKey:LETTER_SPACING];
if ([letterSpacing isKindOfClass:NSNumber.class]) {
NSNumber* ls = letterSpacing;
data->wordSpacing = (CGFloat)[ls doubleValue];
} else {
data->letterSpacing = letterSpacing ?
[RNSVGFontData toAbsoluteWithNSString:letterSpacing
fontSize:fontSize]
: parent->letterSpacing;
}

return data;
}
Expand Down

0 comments on commit c343229

Please sign in to comment.