在精灵上制作滚动视图锁定并放大它

2024-01-02

参考我之前的问题:

Swift 2.0,SpriteKit - 滚动视图不使用页面。 https://stackoverflow.com/questions/34849615/swift-2-0-spritekit-scrollview-to-not-use-pages

我试图获取滚动视图(它是 UIScrollView 的子类),我必须将其锁定到屏幕中间的精灵上,而不是仅仅能够停止精灵之间间隙的滚动。

我还试图让精灵在屏幕中央时稍微放大(就像十字路口角色选择菜单)

这是我的滚动视图:

scrollView = CustomScrollView(frame: CGRect(x: 0, y: 0, width: self.frame.size.width, height: self.frame.size.height), scene: self, moveableNode: moveableNode, scrollDirection: .Horizontal)
    scrollView.contentSize = CGSizeMake(self.frame.size.width * 3, self.frame.size.height) // * 3 makes it three times as wide as screen
    view!.addSubview(scrollView)

    /// Set scrollView to first page
    scrollView.setContentOffset(CGPoint(x: 0 + self.frame.size.width * 2, y: 0), animated: true)

    /// ScrollView Sprites for each page in scrollView
    /// Makes positioning much easier.
    let page1ScrollView = SKSpriteNode(color: SKColor.clearColor(), size: CGSizeMake(self.frame.size.width, self.frame.size.height))
    page1ScrollView.zPosition = -1
    page1ScrollView.position = CGPointMake(CGRectGetMidX(self.frame) - (self.frame.size.width * 2), CGRectGetMidY(self.frame))
    moveableNode.addChild(page1ScrollView)

    let page2ScrollView = SKSpriteNode(color: SKColor.clearColor(), size: CGSizeMake(self.frame.size.width, self.frame.size.height))
    page2ScrollView.zPosition = -1
    page2ScrollView.position = CGPointMake(CGRectGetMidX(self.frame) - (self.frame.size.width), CGRectGetMidY(self.frame))
    moveableNode.addChild(page2ScrollView)

    let page3ScrollView = SKSpriteNode(color: SKColor.clearColor(), size: CGSizeMake(self.frame.size.width, self.frame.size.height))
    page3ScrollView.zPosition = -1
    page3ScrollView.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))
    moveableNode.addChild(page3ScrollView)


    /// Test label page 1
    let sprite1 = SKSpriteNode(color: SKColor.redColor(), size: CGSize(width: 50, height: 50))
    sprite1.position = CGPointMake(0, 0)
    page1ScrollView.addChild(sprite1)

    let sprite2 = SKSpriteNode(color: SKColor.redColor(), size: CGSize(width: 50, height: 50))
    sprite2.position = CGPointMake(sprite1.position.x + (sprite2.size.width * 1.5), sprite1.position.y)
    sprite1.addChild(sprite2)

    let sprite3 = SKSpriteNode(color: SKColor.redColor(), size: CGSize(width: 50, height: 50))
    sprite3.position = CGPointMake(sprite2.position.x + (sprite3.size.width * 1.5), sprite1.position.y)
    sprite1.addChild(sprite3)

我尝试实现雷项目中找到的锁定代码(请参阅链接问题),但我没有运气让它工作。有任何想法吗?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在精灵上制作滚动视图锁定并放大它 的相关文章

随机推荐