我一直试图找出一种“简单”的方法来为我的SpriteKit游戏提供可滚动的垂直列表。
我将使用它来实现我的游戏的商店/升级部分,所以我希望用户能够向下滚动列表以查看可能的不同升级。
我已经看过很多关于将UIScrollView集成到SpriteKit中的帖子,但大多数帖子似乎都在滚动整个屏幕。
到目前为止我所拥有的是:
-(void) createSceneContents
{
[super createSceneContents];
_scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(10,100, 250, 200)];
_scrollView.contentSize = CGSizeMake(2000, 120);
_scrollView.scrollEnabled = YES;
_scrollView.showsHorizontalScrollIndicator = YES;
_scrollView.backgroundColor = [UIColor brownColor];
[self.view addSubview:_scrollView];
//Test sprites for scrolling and zooming
SKSpriteNode *greenTestSprite = [SKSpriteNode spriteNodeWithColor:[SKColor greenColor]
size:CGSizeMake(25, 25)];
[greenTestSprite setName:@"greenTestSprite"];
greenTestSprite.position = CGPointMake(25, 125);
[self addChild:greenTestSprite];
//[self addChild: [self newMenuNode]];
}
我正在努力想到能够将绿色测试精灵添加到UIScrollView中的最简单方法。我无法理解其他人这样做的方式,因为他们似乎正在连接UIScrollView与SKView的滚动,使屏幕看起来像滚动。
我确信有一种更简单的方法可以做到这一点,但现在已经找了一段时间。
任何帮助都将不胜感激。
提前感谢分配。
答案 0 :(得分:7)
如果可能,我会避免使用UIKit
组件。如果UIView
成为UIKit
组件的父级,则很难与SpriteKit
中的SKView
组件进行互动。子类化SKNode
并使用SKView
上的手势识别器创建“ScrollingNode”进行滚动非常容易。这是一个例子:
https://github.com/JenDobson/SpriteKitScrollingNode
另一个值得关注的好教程是http://www.raywenderlich.com/44270/sprite-kit-tutorial-how-to-drag-and-drop-sprites。在手势识别器上转到最后的部分。
答案 1 :(得分:1)
您可以在UIKit
申请中使用SpriteKit
。
如果您使用UIScrollView
,您最终将不得不弄清楚重复使用单元格,布局,用户交互等等。您实际上可以使单元格看起来相当不错(并且如果您只使用(并自定义)UIView
UITableView
,因此您可以在其中删除一堆子视图)
您的层次结构将是:
场景: 的TableView