如何用MVC模式构造可移动对象?

时间:2017-12-03 18:15:41

标签: swift model-view-controller drag-and-drop

我正在开发一个iOS应用程序,允许用户在屏幕上拖放图像作为其功能之一(注意 - 不是iOS 11在应用程序之间拖动)。每个图像都是自定义模型Photo,然后Page模型对象的数组为Photo s。

我在考虑使用包含所有PageEditor个对象的Photo视图,但我不确定如何最好地跟踪x / y定位每个对象。因为Photo对象是结构而不是视图,所以我需要让每个Photo对象都具有可拖动的自定义PhotoView

基本上,PageEditor的{​​{1}}有Page个。但是Photo也有一个PageEditor的数组,那么哪个模型/视图应该知道它的位置?

请注意,如果没有尽可能明确,请不要进行投票。这是一个非常抽象的问题。我很乐意重新解释。

1 个答案:

答案 0 :(得分:0)

您的照片对象可以包含两个x,y坐标点。可以基于更新照片的位置。

func touchesMoved(_ touches: Set<UITouch>,  with event: UIEvent)

你可以通过

访问你的触摸位置
for touch in touches {
  touch.position(in:self)
  // update Photo x,y 
}

在MVC中,您的照片是一个模型。您的PhotoView是一个视图。