2014-09-13 68 views
2

我試圖以編程方式創建按鈕。我已經子類SKSpriteNode和它的一個孩子是SKLabelNode。我這樣做的原因是,標籤和按鈕一起移動並且是一個單元。問題在於,當我縮放按鈕時,標籤也會縮放,並使文本變形,使其看起來像素化(非常可怕)。有沒有辦法,即使我必須重寫整個事物,以便我可以只縮放按鈕?縮放一個SKSpriteNode而不縮放它的子節點

回答

3

我在尋找這個答案約一個小時前發佈這個問題,然後第二個我發佈的問題,我找到了答案......令人難以置信!

設置父項(SKSpriteNode)的大小將影響Sprite的大小,但不影響子項(標籤)。代碼如下:

[button setSize:CGSizeMake(100, 200)]; //button is the SKSpriteNode 

標籤文本的大小可以與調整大小的按鈕分開更改。這允許按鈕的位置和它的文本保持鏈接,但它們的大小被單獨控制。正是我需要的。也許有一個更好的解決方案來首先對SKSpriteNode進行繼承,但我想不出一個更好的方法來保持它們之間的聯繫,但是獨立。

2

允許我提供替代解決方案。假設精靈和標籤是家長和孩子,如果你擴展精靈:

sprite.scale = 1.25; 

您只需縮減了相同數額的孩子標籤:

label.scale = 0.75; 
+0

我認爲這樣做是的好。我可能是錯的,但我注意到,即使我每次重新創建標籤,它都會佔用父級的倍數。如果不進行像您所建議的那樣的操作,是否有辦法避免這種情況? IOS 8的速度不夠快。我希望他們能夠更容易地以編程方式構建菜單! – 02fentym 2014-09-13 21:26:10