Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当前设备中完美匹配按钮的数学公式屏幕宽度_Ios_Objective C_User Interface_Sprite Kit - Fatal编程技术网

Ios 当前设备中完美匹配按钮的数学公式屏幕宽度

Ios 当前设备中完美匹配按钮的数学公式屏幕宽度,ios,objective-c,user-interface,sprite-kit,Ios,Objective C,User Interface,Sprite Kit,有人能给我指出正确的方向,让我知道如何正确地写出代码,以便任何特定y轴上的所有按钮都能尽可能地适应当前设备屏幕的宽度吗 更确切地说,目前,我有4个按钮(由一个SKSpriteNode制成),需要在屏幕内以一种看起来非常合适的方式放置。设备屏幕是纵向的,尽管从数学的角度来看,这无关紧要,只是屏幕的实际宽度。每个按钮宽度使用相同的纹理,从而产生相同的宽度,但其自身的纹理可能会不时更改,从而导致每个按钮宽度缩小或扩大 现在,我的定位代码如下所示: btnLvl1.position = CGPointM

有人能给我指出正确的方向,让我知道如何正确地写出代码,以便任何特定y轴上的所有按钮都能尽可能地适应当前设备屏幕的宽度吗

更确切地说,目前,我有4个按钮(由一个SKSpriteNode制成),需要在屏幕内以一种看起来非常合适的方式放置。设备屏幕是纵向的,尽管从数学的角度来看,这无关紧要,只是屏幕的实际宽度。每个按钮宽度使用相同的纹理,从而产生相同的宽度,但其自身的纹理可能会不时更改,从而导致每个按钮宽度缩小或扩大

现在,我的定位代码如下所示:

btnLvl1.position = CGPointMake(_scrollingNode.size.width/20*3, scrollStart.position.y - 60);
btnLvl2.position = CGPointMake(_scrollingNode.size.width/20*8, scrollStart.position.y - 60);
btnLvl3.position = CGPointMake(_scrollingNode.size.width/20*13, scrollStart.position.y - 60);
btnLvl4.position = CGPointMake(_scrollingNode.size.width/20*18, scrollStart.position.y - 60);
我希望有人能推荐一个数学公式,以确保无论每个按钮的宽度&有多少个按钮,它们都能尽可能地放在屏幕宽度内。如果能为设备屏幕的高度做点什么(但不是必须的),那将是一个超级奖励


顺便说一句,我自己也试过计算这个,但我的数学能力不是很强。

你可以使用场景大小“自动适应”任何节点。例如,如果要将按钮置于屏幕中央:

button.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2);
尽管您可以使用此选项:

button.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));

使用场景大小比例,然后制作button.size和button.position在代码中如何实现?请您键入一个例子好吗?为什么不使用自动布局?我在SpriteKit的SKScene中做了所有这些(因为它是一个游戏)&我从未见过有人使用自动布局。我甚至不知道如何设置一个场景…目前的结果是什么?是不是节点对于屏幕来说有点太宽了?在视图控制器中,您为填充定义了什么(方面填充,填充)?此外,在视图控制器中,是否定义精灵套件场景的大小(默认值为1024x768)?