问题标签 [zposition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
99 浏览

ios - 2 UIImage 具有自适应大小和一个在第二个

我正在尝试在具有一些约束的 UIView 上添加作为 UIImage 添加的图像。

我有 2 张图片要放在同一个屏幕上。我想将第一个固定在顶部,第二个固定在底部,第二个固定在第一个上方。

正如我所说,我尝试使用约束,也使用 zPosition。底层总是有问题。我什至看不到图像。

这些图像位于由 UIPageViewController 管理的 UIView 上。

这是为了构建一个应用程序的演示,其中包含调整大小、剪切和注释的屏幕截图。请在下面找到我的故事板的一些屏幕截图,我的约束和结果:

故事板 约束 结果

请注意,约束的常数都等于 0。在我的结果的底部,我什至看不到第二张图像的一部分。这是我认为的主要问题。

预先感谢您的帮助。

0 投票
2 回答
405 浏览

ios - 在 SpriteKit 中,zPosition 如何用于渲染和命中测试?

编辑:Apple 在 iOS8 中修复了这个问题,所以这当然不是预期/有意的,而是一个错误。

zPosition当用于渲染节点与用于确定哪个节点被触摸时,它的解释似乎不同。

当我创建父节点和子节点的层次结构(都设置了 zPosition)时,用于渲染的最顶层节点由通向该节点的所有 zPosition 的总和确定,因此可以交错来自不同父节点的节点。
然而,在确定接收触摸的最顶层节点时,zPosition 仅用于区分同一父节点的兄弟节点,当节点具有不同父节点时,其父节点 z-order 优先。(一个父节点的所有子节点都位于不同父节点的节点之下或之上)

为了说明,一些带有结果的示例代码:

在注释掉 zPosition 行的情况下运行时,您会得到以下结果:
没有 zPosition

正如预期的那样,第一个 container1 被渲染(带有黄色和红色方块),在顶部 container2 被渲染(带有蓝色方块),所以红色方块被隐藏了。在黄色“边框”内单击时,输出为yellow hit,在蓝色正方形内单击会打印blue hit,一切都符合预期。

但是,当插入 zPosition 线时,您会得到以下信息:
带 zPosition

如您所见,容器 2 的蓝色方块与容器 1 的两个方块交错,但是当您在红色方块内单击时,您会得到blue hit
在确定哪个节点最适合触摸时,container2 中的所有内容仍位于 container1 之上。

这是预期的行为吗?如果是这样,是否有一种通用的方法可以在不失去理智的情况下处理这个问题?

0 投票
2 回答
255 浏览

ios - 使用枚举在 Sprite Kit 中组织 zPosition 值

我们一直在使用枚举来组织精灵的 zPosition。当我们开始向游戏中添加带有多个子精灵的 SKNode 时,结构很快就开始崩溃。一些放置在屏幕上的子精灵必须具有负值才能位于其他具有子节点的节点下方。这些负值相对于单独枚举中的其他精灵很难跟踪。

有没有比使用枚举更好的方法来组织精灵的 zPosition(尤其是那些有子精灵的)?

0 投票
1 回答
418 浏览

sprite-kit - 如何停止 SKSpriteNodes 在触摸时更改 zPosition

当触摸节点时,我遇到了 zPosition 发生意外变化的问题。

我不能给出一个简单的代码示例,因为目前我的场景和渲染非常复杂。呈现场景时,所有内容都正确绘制,并且在大多数情况下,除了如下所述之外,它可以正常工作。

所以问题解释了 - 我们在塔节点(塔防游戏)下方正确渲染了一个基础图像节点。塔是圆形的,基础图像是方形的,所以边角突出。如果您设法触摸到角落,出于某种我不知道的原因,zPosition 将变为塔上方。

没有特定的代码可以改变游戏中任何东西的任何 zPositions。

我知道这是在黑暗中拍摄的,但任何洞察力都会非常好,非常感谢。

0 投票
0 回答
450 浏览

ios - 当 superview 有 zposition 时,UIButton 没有收到触摸

我有一个包含三个按钮的视图。如果我将视图的 zPosition 设置为将其置于顶部,则放置在其上的按钮不会收到触摸。

但是,只要将视图的 zPosition 保留为默认值,按钮就会开始接收触摸。我检查了所有常见的嫌疑犯bringToFront 等,但没有任何效果。

这里的问题是我的理解存在一些重大差距。

0 投票
1 回答
226 浏览

ios - 如何使这个 GIF 正确显示?

我创建了一个 GIF,它基本上是飘落的雪粒,并且有一个透明的背景。因此,我可以在应用程序上的其他 PNG 和图像上流过雪。问题是应用程序加载并且 GIF 显示为全白。不知道为什么,因为我在制作时给了它透明度。如果我降低 Xcode 中的 alpha,我仍然看不到我的旧 PNG(通常的背景图像)。

这是在我的 ViewController.m

0 投票
1 回答
130 浏览

ios - How to make tap through parent nodes?

I searched trough SO and tried few examples, but I still can't understand this behaviour. On simulator 7.1 tap-through works, but on 8.1 don't work.Also I asked earlier similar question, but not the same as this and I solved it using nodesAtPoint method and then looping trough all nodes and checking node name / class... But this differs because now I use custom Button class which implements touchesBegan and I want it to detect and if possible "swallow" touches.

So I have a simple Button class which is subclass of SKSpriteNode and it has it's own touchesBegan and userInteractionEnabled = YES. In my view controller property ignoreSiblingsOrder is set to YES.

Here is an (simplified) example which can produce described behaviour:

I just don't understand why this doesn't work on 8.1...I know that hit-testing goes in opposite order then rendering nodes, but then what would be the right way to achieve tap-through behaviour? So currently what's happening is when I test on 7.1 I got message "yellow button", but on 8.1 I got message "touch detected" (and when I print node name it says root). Also I have been pointed to file a radar because of this, but as I said I solved everything with nodesAtPoint instead of nodeAtPoint so I didn't. And because I thought that that's not a bug, but rather my mistake, because on 7.1 everything was fine. So is this a bug, or something else ?

0 投票
0 回答
711 浏览

swift - 如何将 AVCapture 预览层设置为精灵套件的背景?

我正在尝试在我的中画线SKScene,我可以成功地画出它,但我想要那条线在前面,AVCapturePreviewLayer但我得到了这样的东西:

在此处输入图像描述

我想要我的 cameraPreviewLayer 上方的所有行。

这是我的代码:

我想要我的previewLayer背后SKScene,我想做这样的事情:

所以我也能看到previewLayer,我也能看到我的台词。

我尝试设置视图的 zPosition 但它不起作用。

这是我的示例项目。

0 投票
0 回答
131 浏览

ios - iOS SpriteKit - 在特定位置触摸,想要特定 zPosition 的节点

我有一个项目,当我点击时,我会检查点击是否在特定节点上。如果是,那么我在该位置创建一个新的 SpriteNode,该位置仅在 0.1 秒内可见,然后才被删除。我希望能够在屏幕上进行垃圾邮件点击,但是通过当前检查,我最终点击的节点是我创建的新 SpriteNode。

有任何想法吗?谢谢!

0 投票
3 回答
1686 浏览

ios - 如何更改 tableView 部分标题的 zPosition?

在我返回牢房之前,我有一个tableView地方。viewForHeaderInSection我有这个代码:

现在,这在单元格滚动到我想要的部分标题上的意义上是有效的。但是该单元格在框架的底部有 3 个按钮,当这些按钮滚动到(或者我应该说在下面)部分标题内容视图时,视图会阻止按钮并且我不能再点击按钮,即使我仍然可以看到它们,这是因为单元格内容视图是在标题视图上呈现的。

如果我进入视图层次结构,标题内容视图位于单元格视图之上,这是阻止按钮操作的罪魁祸首。

有人有工作吗?或者知道如何将 headerCell 的 Zposition 更改为按钮后面?我已经尝试了很多东西,但我需要帮助。