CCLabelTTFで文字が表示されない
iOS7にすると昔のソースが動かなくなっていました。
CCLabelTTFからラベルを作成すると、フォントが表示されなくなっていたようです。
公式の最新では既に対処されているのかもしれませんが、古いソースでは下記の修正で動きました。
変更メソッド:_initWithString
◎ 変更前
251 |
CGContextRef context = CGBitmapContextCreate(data, dim.width, dim.height, 8, dim.width * 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); |
◎ 変更後
251 |
CGContextRef context = CGBitmapContextCreate(data, dim.width, dim.height, 8, (int)dim.width * 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); |
同じメソッド内で、古いUITextAlignmentが使用されているので、
こちらもNSTextAlignmentへ変更します。
◎ 変更前
267 268 269 |
UITextAlignment align = (UITextAlignment)((2 == uHoriFlag) ? NSTextAlignmentRight : (3 == uHoriFlag) ? UITextAlignmentCenter : UITextAlignmentLeft); |
◎ 変更後
267 268 269 |
NSTextAlignment align = ((2 == uHoriFlag) ? NSTextAlignmentRight : (3 == uHoriFlag) ? NSTextAlignmentCenter : NSTextAlignmentLeft); |
最後に、UILineBreakModeWordWrap を、NSLineBreakByWordWrappingへ修正します。
◎ 変更前
282 |
[str drawInRect:CGRectMake(0, startH, dim.width, dim.height) withFont:font lineBreakMode:(UILineBreakMode)UILineBreakModeWordWrap alignment:align]; |
◎ 変更後
282 |
[str drawInRect:CGRectMake(0, startH, dim.width, dim.height) withFont:font lineBreakMode:NSLineBreakByWordWrapping alignment:align]; |
以上の修正で、TTFLabelから作成されたCCMenuItemLabelの表示まで確認できました