0

我阅读了这份文件并这样声明:

CCLabelTTF *label = [CCLabelTTF initWithString: @"a" fontName: @"HelveticaNeue" fontSize: 24 dimensions: CGSizeMake(320,480) hAlignment: CCVerticalTextAlignmentTop];

但它的显示警告:不知道选择器的类方法......有人可以帮助我吗?

4

2 回答 2

1

initWithString... 不是静态方法,因此您需要先分配 CCLabelTTF:

CCLabelTTF *label = [[CCLabelTTF alloc] initWithString: @"a" fontName: @"HelveticaNeue" fontSize: 24 dimensions: CGSizeMake(320,480) hAlignment: CCVerticalTextAlignmentTop];

或者您可以使用静态方法:

CCLabelTTF *label = [CCLabelTTF labelWithString: @"a" fontName: @"HelveticaNeue" fontSize: 24 dimensions: CGSizeMake(320,480) hAlignment: CCVerticalTextAlignmentTop];
于 2014-04-16T10:19:27.233 回答
1

在 Cocos2d V3 中,更改了 cclabelTTF。CCLabelTTF.m 中可用的方法只有:

+ (id) labelWithString:(NSString *)string fontName:(NSString *)name fontSize:    (CGFloat)size
 {
   return [[self alloc] initWithString:string fontName:name fontSize:size];
 }

 + (id) labelWithString:(NSString *)string fontName:(NSString *)name fontSize:(CGFloat)size dimensions:(CGSize)dimensions
 {
     return [[self alloc] initWithString:string fontName:name fontSize:size dimensions:dimensions];
 }

+ (id) labelWithAttributedString:(NSAttributedString *)attrString
{
    return [[self alloc] initWithAttributedString:attrString];
}

 + (id) labelWithAttributedString:(NSAttributedString *)attrString dimensions:(CGSize)dimensions
 {
     return [[self alloc] initWithAttributedString:attrString dimensions:dimensions];
 }

所以你的实现在 COCOS2d V3 中是不正确的。这对 V2 版本有效。我认为仍然需要更新文档。

您应该使用上述四种方法中的任何一种,例如:

CCLabelTTF *label = [CCLabelTTF labelWithString@"a" fontname:@"Arial" fontsize:12 dimension:(CGSize)dimensions];
   label.verticalAlignment = ******
 or
   label.horizontalAlignment = ****

如上所述,这将在内部调用构造函数。

于 2014-04-16T10:33:02.307 回答