在iOS中与复杂的人物互动

tom*_*ios 5 3d 2d draw ios scenekit

我需要能够与其中包含许多不同部分的cilinder 的表示进行交互.当用户点击小矩形时,我需要显示与特定部分(表格)相关的弹出窗口.

下一张图片展示了一种逼真的3D方法.但是,我再说一遍,我需要解决这个问题,不需要3D(虽然会很酷).符合功能需求的表示就足够了.

有关绘图部件的信息来自API(尺寸,位置等)

在此输入图像描述

我真的不需要它是现实的.最简单的近似是在2d表示中显示一个cilinder,就像一个由可交互的小矩形组成的矩形.

所以,正如我所提到的,我认为(正如我所看到的)有两种相反的方法:现实的或简化的

有没有办法在中间实现一个好的解决方案?我应该研究哪些库,组件和框架?

我的研究让我进入了SceneKit,但我仍然不知道我是否能够与之互动.交互是一个非常重要的部分,因为我需要在用户点击圆柱体上的任何小矩形时显示弹出框.

谢谢

Con*_*sed 1

理论上,在 Scene Kit 中使用 SpriteKit 或 UIKit Popovers 执行此操作是理想的。

然而,Scene Kit(和 Sprite Kit)似乎处于不断变化的状态,苹果公司没有人与用户就人们目前遇到的大量问题进行沟通。从 iOS 8.4 中相对稳定且高性能的 Sprite Kit 到 iOS 9 中的大量性能损失似乎很常见。Scene Kit 似乎还没有完成,因此文档和社区几乎不存在。

话虽这么说……理论是这样的:

传统 3D 应用程序中使用材质 ID 来定义具有不同材质的对象区域。不知何故,这些材质 ID 在 SceneKit 中被称为“元素”。我无法找到更多关于此的信息。

应该能够检测到物体触摸下方的“元素”,并做出相应的响应。您甚至应该能够更改该元素上材质的状态/性质,以指示它是当前选定的。

当您想要一个光滑、圆润的圆柱体时,请从一个仅由足够的段组成的圆柱体开始,以描述/定义要触摸的“矩形”部分所需的材料 ID。

稍后,您可以向圆柱体添加平滑操作以使其变圆,并且唯一材质 ID 的每个象限中的所有额外平滑几何图形都应该响应,无论您如何添加此额外细节以平滑圆柱体的呈现。