diff --git a/text/span.ios.ts b/text/span.ios.ts index 70935fb90..49b87e084 100644 --- a/text/span.ios.ts +++ b/text/span.ios.ts @@ -9,8 +9,8 @@ export class Span extends spanCommon.Span { public updateSpanModifiers(parent: formattedString.FormattedString) { super.updateSpanModifiers(parent); var realFontFamily = this.fontFamily || (parent ? parent.fontFamily : undefined); - var realFontSize = this.fontSize || - (parent ? parent.fontSize : undefined) || + var realFontSize = this.fontSize || + (parent ? parent.fontSize : undefined) || (parent && parent.parent ? parent.parent.style.fontSize : undefined); var realFontAttributes = this.fontAttributes || (parent ? parent.fontAttributes : undefined); @@ -25,10 +25,10 @@ export class Span extends spanCommon.Span { else { var fontDescriptor = UIFontDescriptor.new(); var symbolicTraits; - if (realFontAttributes & enums.FontAttributes.Bold) { + if (realFontAttributes & enums.FontAttributes.Bold) { symbolicTraits |= UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitBold; } - if (realFontAttributes & enums.FontAttributes.Italic) { + if (realFontAttributes & enums.FontAttributes.Italic) { symbolicTraits |= UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitItalic; } font = UIFont.fontWithDescriptorSize(fontDescriptor.fontDescriptorWithSymbolicTraits(symbolicTraits), realFontSize); @@ -41,7 +41,7 @@ export class Span extends spanCommon.Span { } } - var realForegroundColor = this.foregroundColor || + var realForegroundColor = this.foregroundColor || (parent ? parent.foregroundColor : undefined) || (parent && parent.parent ? parent.parent.style.color : undefined); if (realForegroundColor) { @@ -51,7 +51,7 @@ export class Span extends spanCommon.Span { }); } - var realBackgroundColor = this.backgroundColor || + var realBackgroundColor = this.backgroundColor || (parent ? parent.backgroundColor : undefined) || (parent && parent.parent ? parent.parent.style.backgroundColor : undefined); if (realBackgroundColor) { diff --git a/ui/styling/font.android.ts b/ui/styling/font.android.ts index e92e87cfe..7b1ee9723 100644 --- a/ui/styling/font.android.ts +++ b/ui/styling/font.android.ts @@ -13,20 +13,14 @@ export class Font extends common.Font { private _android: android.graphics.Typeface; get android(): android.graphics.Typeface { if (!this._android) { - var style: number; + var style: number = 0; + if (this.isBold) { - if (this.isItalic) { - style = android.graphics.Typeface.BOLD_ITALIC; - } - else { - style = android.graphics.Typeface.BOLD; - } + style |= android.graphics.Typeface.BOLD; } - else if (this.isItalic) { - style = android.graphics.Typeface.ITALIC; - } - else { - style = android.graphics.Typeface.NORMAL; + + if (this.isItalic) { + style |= android.graphics.Typeface.ITALIC; } var typeFace = this.getTypeFace(this.fontFamily); diff --git a/ui/styling/font.ios.ts b/ui/styling/font.ios.ts index 7149748ce..7236425aa 100644 --- a/ui/styling/font.ios.ts +++ b/ui/styling/font.ios.ts @@ -1,5 +1,6 @@ import enums = require("ui/enums"); import common = require("ui/styling/font-common"); +import utils = require("utils/utils"); var DEFAULT_SERIF = "Times New Roman"; var DEFAULT_SANS_SERIF = "Helvetica"; @@ -12,21 +13,24 @@ export class Font extends common.Font { get ios(): UIFontDescriptor { if (!this._ios) { var fontFamily = this.getFontFamilyRespectingGenericFonts(this.fontFamily); - this._ios = UIFontDescriptor.fontDescriptorWithNameSize(fontFamily, 0); + + var symbolicTraits: number = 0; if (this.isBold) { - if (this.isItalic) { - this._ios = this._ios.fontDescriptorWithSymbolicTraits( - UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitItalic | - UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitBold); - } - else { - this._ios = this._ios.fontDescriptorWithSymbolicTraits( - UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitBold); + symbolicTraits |= UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitBold; + } + if (this.isItalic) { + symbolicTraits |= UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitItalic; + } + + if (fontFamily) { + this._ios = UIFontDescriptor.fontDescriptorWithNameSize(fontFamily, 0); + if (symbolicTraits) { + this._ios = this._ios.fontDescriptorWithSymbolicTraits(symbolicTraits); } } - else if (this.isItalic) { - this._ios = this._ios.fontDescriptorWithSymbolicTraits( - UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitItalic); + + if(!this._ios) { + this._ios = UIFontDescriptor.new().fontDescriptorWithSymbolicTraits(symbolicTraits); } } return this._ios; diff --git a/utils/utils.ios.ts b/utils/utils.ios.ts index bfd1928ed..1e764aa34 100644 --- a/utils/utils.ios.ts +++ b/utils/utils.ios.ts @@ -39,7 +39,7 @@ export module ios { export function nsArrayToJSArray(a: any): string[] { var arr = []; if ("undefined" !== typeof a) { - for (var i = 0; i < a.count(); i++) { + for (var i = 0; i < a.count; i++) { arr.push(a.objectAtIndex(i)); } }