2014-09-13 57 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