2015-08-21 17 views
6

Sto creando un'etichetta all'interno del kit sprite e impostando una dimensione iniziale. Poiché l'app deve essere localizzata, le parole potrebbero apparire più lunghe in altre lingue rispetto alla versione inglese. Pertanto, come posso regolare la dimensione del carattere dell'etichetta per adattarla ad una certa larghezza che in questo caso è il pulsante.Ridimensiona una dimensione del font SKLabelNode per adattarla?

myLabel = SKLabelNode(fontNamed: "Arial") 
myLabel.text = "Drag this label" 
myLabel.fontSize = 20 
+1

Questa domanda simile dovrebbe essere d'aiuto, penso >> http://stackoverflow.com/q/30980918 –

risposta

4

Sono stato in grado di risolvere questo grazie a un commento di @InvalidMemory e alla risposta di @ mike663. Fondamentalmente ridimensiona l'etichetta in proporzione al rettangolo che contiene l'etichetta.

func adjustLabelFontSizeToFitRect(labelNode:SKLabelNode, rect:CGRect) { 

// Determine the font scaling factor that should let the label text fit in the given rectangle. 
let scalingFactor = min(rect.width/labelNode.frame.width, rect.height/labelNode.frame.height) 

// Change the fontSize. 
labelNode.fontSize *= scalingFactor 

// Optionally move the SKLabelNode to the center of the rectangle. 
labelNode.position = CGPoint(x: rect.midX, y: rect.midY - labelNode.frame.height/2.0) 
} 

ecco il link al other question.

Problemi correlati