Fix: ios crash when creating font descriptor

This commit is contained in:
vakrilov
2015-06-23 15:40:29 +03:00
parent e83a82e2e2
commit 39afd3cc3e
4 changed files with 29 additions and 31 deletions

View File

@ -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) {
style |= android.graphics.Typeface.BOLD;
}
if (this.isItalic) {
style = android.graphics.Typeface.BOLD_ITALIC;
}
else {
style = android.graphics.Typeface.BOLD;
}
}
else if (this.isItalic) {
style = android.graphics.Typeface.ITALIC;
}
else {
style = android.graphics.Typeface.NORMAL;
style |= android.graphics.Typeface.ITALIC;
}
var typeFace = this.getTypeFace(this.fontFamily);

View File

@ -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) {
symbolicTraits |= UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitBold;
}
if (this.isItalic) {
this._ios = this._ios.fontDescriptorWithSymbolicTraits(
UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitItalic |
UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitBold);
symbolicTraits |= UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitItalic;
}
else {
this._ios = this._ios.fontDescriptorWithSymbolicTraits(
UIFontDescriptorSymbolicTraits.UIFontDescriptorTraitBold);
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;

View File

@ -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));
}
}