Sprite Kit中的UIScrollView水平滚动菜单

PoK*_*ros 7 menu uiscrollview horizontal-scrolling horizontalscrollview sprite-kit

我想在我的新Sprite Kit游戏中制作一个水平滚动菜单.Sprite Kit相当新,但Sprite Kit的教程并不多.UIScrollView与Sprite Kit兼容吗?我尝试了几种这样的方法:

UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
scroll.pagingEnabled = YES;
NSInteger numberOfViews = 3;
for (int i = 0; i < numberOfViews; i++) {
    CGFloat xOrigin = i * self.view.frame.size.width;
    UIView *awesomeView = [[UIView alloc] initWithFrame:CGRectMake(xOrigin, 0,      self.view.frame.size.width, self.view.frame.size.height)];
    awesomeView.backgroundColor = [UIColor colorWithRed:0.5/i green:0.5 blue:0.5 alpha:1];
    [scroll addSubview:awesomeView];
}
Run Code Online (Sandbox Code Playgroud)

这没用.我之前从未使用过UIScrollView.任何人都可以使用UIScrollView制作水平滚动菜单吗?我想要做的一个例子是Bloons TD 5及其菜单.

Ron*_*huk 15

我知道这个问题已经有几个月了,但我也在寻找滚动菜单滑块来选择我的SpriteKit游戏中的关卡.我找不到任何已存在的代码,并且将UIScrollView强制适应我的SpriteKit游戏的想法对我没有吸引力.所以我写了自己的水平选择滑动菜单.

我已经模拟了UIScrollView的所有动作,因此看起来很自然,并且可以配置为向左或向上滚动.

作为奖励,我在菜单上创建了一个视差背景,可以轻松地换出新图像以获得自定义外观.

https://github.com/hsilived/ScrollingMenu

滚动菜单的代码评论很好,所以不应该有很多集成问题.

github项目有一个完整的工作演示,包括世界,水平和视差图像.如果你喜欢它标记我的答案是有用的,所以我可以获得一些声誉:)


Bok*_*kos 6

你绝对可以将UIKit控件与SpriteKit结合使用.从想要拥有UIScrollView的SKScene中,将滚动视图添加到self.view,如下所示:[self.view addSubview:scroll].您可能希望在SKScene上的 - (void)didMoveToView:(SKView*)视图方法中执行此操作.转换出正在使用它的SKScene后,请记住从SKView中删除滚动视图.您可以在 - (void)willMoveFromView:(SKView*)视图方法中执行此操作.不要忘记在UIScrollView上设置contentSize.

注意:如果要在UIKit控件上安装SpriteKit节点,则需要编写自己的SKSpriteNode,其行为类似于UIScrollView.

扩展上注意:如果您的滚动视图需要包含雪碧-KIT节点而不仅仅是UIKit的观点,你将不能够除非你做一些巧妙的使用的UIScrollView作为回答表明这个问题在这里