我想让我的按钮水平和垂直拉伸。
在故事板中一切都很好
但是在SpriteKit中是不一样的!
我正在使用
加载图片let spriteTexture = SKTexture(imageNamed: "button");
let sprite = SKSpriteNode(texture: spriteTexture, color: nil, size: CGSizeMake(290, 400));
答案 0 :(得分:3)
您需要设置精灵的centreRect
属性,以定义缩放的方式。这是中心的标准化CGRect
,不会缩放,但周围的元素将是。
看着你的按钮,除了中心的几个像素之外,你想要的一切都不会被拉伸。设置centreRect
属性:
sprite.centerRect = CGRectMake(0.49, 0.49, 0.02, 0.02)
这意味着从距离精灵角落49%的宽度和高度的点绘制一个矩形,并且边长分别为精灵宽度和高度的2%。因此,只有中心2%的纹理被拉伸。
这在Apple提供的“使用精灵”文档中进行了讨论,并且我在“调整精灵大小”一节中更有效地解释了它:
答案 1 :(得分:2)
如果设置了centeRect,yScale,xScale,则按钮将正确拉伸
let sprite = SKSpriteNode(texture: spriteTexture, color: nil, size: CGSizeMake(290, 58));
sprite.position = CGPointMake(0, -100);
sprite.centerRect = CGRectMake( 140/290.0, 24/58.0, 10.0/58.0, 10.0/58.0);
sprite.yScale = CGFloat(250.0 / 58.0);
sprite.xScale = CGFloat((self.frame.size.width - 20) / 290.0);
self.addChild(sprite);