我正在开发一个iPad应用程序,可以使用节点和边缘可视化网络图。这是通过使用UIScrollView完成的,并添加了UIViews作为节点的子视图和CAShapeLayer作为边缘。这适用于平移和点击节点和uiscrollview,但现在我想实现缩放。这是我的问题开始的地方。我应该如何使用带有多个UIView的UIScrollView,它应该根据捏合放大或缩小?我应该如何限制缩放以适应UIScrollViews的内容大小? 我设法创建了如下结构:
滚动视图下的视图用作内容视图。 我以编程方式将子视图添加到内容视图中,因此它看起来像:
View
Scroll View (UIScrollView)
View (UIView)
>> Node1 (UIView)
>> Node2 (UIView)
>> Node3 (UIView)
节点工作正常,可以拖动。问题(只是为了重复我自己)是我无法根据uiscrollview控制内容视图。我试图实现捏合手势,但每次开始捏时都会跳起来。此外,我尝试实现一个平移手势,但它只适用于滚动视图而不是内容视图。
我希望你们能理解我的问题。如果你能帮助我理解视图的结构以及我应该用手势进行捏合和平移,我真的很感激。
答案 0 :(得分:0)
实际上,我开始实现一些类似的图处理可视化。 我假设,这个解决方案比简单的节点uiview更棘手。 我想,会有一些OpenGL处理平移,录制和缩放。 - 我想是SpriteKit或SceneKit的东西。我见过WWDC 2012,2013或2014年的视频 - 我不记得了,他们在那里展示了如何处理OpenGL和滚动视图。
或者它将是scrollview 仅接收触摸,以及其他一些视图处理动画以用于theese touch-drag-pinch事件。