CCLabelTTF Text-Ausrichtung
Habe ich eine Klasse, die imitiert eine Schaltfläche. Es enthält ein label, welches ich versuche zu zentral ausrichten (horizontal). Egal was ich versuche, bleibt das Etikett auf der linken Seite, führt mich zu denken, das ist komplizierter, als es scheint. Hier ist das einzige Initialisierung/setup code:
-(CCButtonLayer*)initWithText:(NSString*)text bgColor:(ccColor4B)color width:(GLfloat)width height:(GLfloat)height {
self = [super initWithColor:color width:width height:height];
self.lbl = [CCLabelTTF labelWithString:text fontName:@"Marker Felt" fontSize:22];
self.lbl.horizontalAlignment = kCCTextAlignmentCenter;
[self.lbl setHorizontalAlignment:kCCTextAlignmentCenter];
self.lbl.color = ccc3(0,0,0);
// self.lbl.contentSize = CGSizeMake(width, height); //no effect anyway
self.lbl.anchorPoint = CGPointZero;
self.lbl.position = CGPointZero;
[self addChild:self.lbl];
return self;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entfernte ich die alignment-Eigenschaften der label-und ausgerichtet, es manuell statt. Eindeutig etwas, was ich nicht sehen kann, passiert ist, vielleicht gibt es einen anderen offset wie du gesagt hast @LearnCocos2D
Es sind diese beiden Linien, die Bestimmung der position des label.
Versuchen Sie Sie auf:
Habe ich angenommen, dass "selbst" ist die Taste, und dass es die Größe des Inhalts wurde an dieser Stelle einstellen
Als James, sagte, die änderung der anchorPoint wirkt sich auf die Ausrichtung. So weisen Sie nicht CGPointZero, weil das ausrichten der linken unteren Ecke mit der übergeordneten position.
Die Tatsache, dass Sie immer noch keine Veränderung könnte darauf hinweisen, dass Sie noch nicht als das label die position ist in der Tat ein offset für die position der übergeordneten. Nun, wenn Sie geändert haben die Eltern anchorPoint als auch die position der Beschriftung wird ein Versatz von den Eltern linken unteren Ecke.
Lange Geschichte kurz: lassen Sie den anchorPoint unverändert. Außer für die label, mit denen Sie die anchorPoint zu beeinflussen Ausrichtung.