Ios 如何使我的精灵套件场景显示在UIView上方?
我做了一些搜索,但没有找到任何直接解决我的问题的方法:我有一个Ios 如何使我的精灵套件场景显示在UIView上方?,ios,objective-c,uiview,uiimageview,sprite-kit,Ios,Objective C,Uiview,Uiimageview,Sprite Kit,我做了一些搜索,但没有找到任何直接解决我的问题的方法:我有一个SKScene,其中有几个SKNodes节点,每个节点都有SKSpriteNode对象用于我的游戏,我使用的是背景UIImageView(至少据我所知,我需要在背景中做一些事情,而这些事情在精灵套件中是不合理的);我遇到的问题是,UIImageView出现在所有东西之上,我看不到我的游戏对象 在我的视图控制器(.m文件)中,我有以下代码来调用我的场景 @implementation GameViewController - (voi
SKScene
,其中有几个SKNodes
节点,每个节点都有SKSpriteNode
对象用于我的游戏,我使用的是背景UIImageView
(至少据我所知,我需要在背景中做一些事情,而这些事情在精灵套件中是不合理的);我遇到的问题是,UIImageView
出现在所有东西之上,我看不到我的游戏对象
在我的视图控制器(.m文件)中,我有以下代码来调用我的场景
@implementation GameViewController
- (void)viewDidLoad
{
[super viewDidLoad];
SKView * skView = (SKView *)self.view;
SKScene * scene = [GameScene sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
[skView presentScene:scene];
}
在上面的游戏场景
中,我有几个SKNodes
,其中我的所有游戏对象都是的子对象(例如nodeHDU
,nodePlay
,nodePause菜单
),我使用UIImageView
作为背景(随着时间的推移,我在背景场景之间切换,并且使用了一些很好的过渡,例如uiviewmanimationoptiontransitioncrosssolve;
如果不使用多个SKSpriteNode
和复杂的SKActions
数组作为背景,就无法实现这一点“m使用UIImageView
)
然而,在Xcode中运行应用程序时,我只看到上面的ImageBackground
。我游戏中的其他对象(其他节点的子对象)存在,各种NSLog
语句被调用,但它们似乎出现在我拥有的ImageBackground
后面。上面的代码“belowSubview”和“sendSubviewToBack”没有帮助
因此,我如何将
imageBackground
发送为实际背景?您的问题在于,您直接将SKView
设置为控制器视图。要解决此问题,请不要将self.view
设置为SKView
的一种类型。在故事板或Xib中执行以下步骤:
UIImageView
。同时设置图像UIImageView
上添加SKView
,并将UIClearColor
设置为背景色UIViewController
->UIView
->UIImageView
->SKView
UIView *backgrounds = [[UIView alloc] init];
[self.view insertSubview:backgrounds belowSubview:self.view];
UIImageView *imageBackground = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height)];
[backgrounds addSubview:imageBackground];
[backgrounds sendSubviewToBack:imageBackground];
[imageBackground setImage:[UIImage imageNamed:@"1-A.png"]];
imageBackground.alpha=1.0;