gpt4 book ai didi

swift - 如何分层 UIButtons 和 SpriteNodes

转载 作者:行者123 更新时间:2023-11-30 13:18:51 25 4
gpt4 key购买 nike

好吧,我想知道如何对 UIButtons 和 SpriteNodes 进行分层,以便我的 SpriteNodes 位于 UIButtons 的顶部。另外,我的 UIButtons 位于我创建的 ScrollView 上。帮助会很好!!

代码:

 let trunk = SKSpriteNode(imageNamed: "Trunk")

trunk.position = CGPoint(x: self.frame.size.width/2, y: self.frame.size.height/2)
trunk.zPosition = 55
self.addChild(trunk)

let frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)
let scrollView = UIScrollView(frame: frame)
scrollView.backgroundColor = UIColor.clearColor()
scrollView.contentSize = CGSizeMake(self.frame.size.width, self.frame.size.height*4)
scrollView.pagingEnabled = false
self.view?.addSubview(scrollView)


let buyButton1 = UIButton(type: .Custom)
buyButton1.frame = CGRect(x: 10, y: 70, width: UIScreen.mainScreen().bounds.width/5, height: UIScreen.mainScreen().bounds.height/6)

let image1 = UIImage(named:"Buy999Button")



buyButton1.setImage(image1, forState: .Normal)
buyButton1.addTarget(self, action: "something", forControlEvents: .TouchUpInside)
buyButton1.layer.zPosition = 1
scrollView.addSubview(buyButton1)
scrollView.layer.zPosition = 1
scrollView.sendSubviewToBack(scrollView)

最佳答案

SKView 本身就是一个 UIView。所有 SpriteKit 节点都是 SKView 的成员并包含在其中。您只能更改 View 的绘制顺序,而不能更改其内容。

SpriteKit 节点最初并不是 View ,而是绘制到由 SKView 管理的 OpenGL 帧缓冲区上。从 Cocoa 的角度来看,SKView 是一个单一 View ,其中没有 subview 。

简单地说:节点在技术上与 View 不兼容。

注意:您可以使用 UITapGestureRecognizer 让 Sprite 节点充当按钮。

类似于:

if (gestureRecognizer == self.tapGesture) {
return CGRectContainsPoint(self.neededSprite.frame, [self convertPoint:[sender locationInView:self.view] toNode:self]);
}
return YES;
}

关于swift - 如何分层 UIButtons 和 SpriteNodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37957576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com