in react-native-pytorch-core/ios/Canvas/DrawingCanvasView.swift [243:293]
func setFont(font: NSDictionary) throws {
if let fr = currentState.fontRepresentation, fr.isEqual(font) {
return
} else {
currentState.fontRepresentation = font
}
var fontName = ""
var serif = false
if let fontFamilyArr = font["fontFamily"] as? NSArray, let fontFamily = fontFamilyArr[0] as? String {
switch fontFamily {
case "serif":
fontName = "TimesNewRomanPS-"
serif = true
case "sans-serif":
fontName = "HelveticaNeue-"
case "monospace":
fontName = "Menlo-"
default:
throw CanvasError.InvalidFontFamily
}
}
if let fontWeight = font["fontWeight"] as? NSString {
if (fontWeight == "bold") {
fontName += "Bold"
}
}
if let fontStyle = font["fontStyle"] as? NSString {
if (fontStyle == "italic") {
fontName += "Italic"
}
}
if fontName.last == "-" {
fontName.removeLast()
}
if serif {
fontName += "MT"
}
currentState.font = UIFont(name: fontName, size: 10.0) ?? .systemFont(ofSize: 10)
if let fontSizeString = font["fontSize"] as? NSString {
let fontSize = CGFloat(fontSizeString.floatValue)
currentState.font = currentState.font.withSize(fontSize)
}
}