2017-12-03 1 views
0

사용자가 화면에서 이미지를 드래그 앤 드롭 할 수있는 iOS 앱을 개발 중입니다. 기능 중 하나의 일부로 이미지를 드래그 앤 드롭 할 수 있습니다 (iOS 11에서 앱 드래그하지 않음). 각 이미지는 사용자 지정 모델 Photo이고 Page 모델 개체의 배열은 Photo입니다.MVC 패턴으로 움직이는 객체를 구조화하는 방법은 무엇입니까?

모든 Photo 개체를 포함하는 PageEditor보기가 있다고 생각했지만 각 개체의 x/y 위치를 가장 잘 추적하는 방법을 잘 모르겠습니다. Photo 개체는보기가 아닌 구조체이기 때문에 각각 Photo 개체가 있어야하며 사용자 지정 PhotoView은 드래그 가능합니다.

따라서 본질적으로 PageEditorPage이며, 이는 Photo입니다. 그러나 PageEditor도 배열이 PhotoView입니다. 따라서 어느 모델/뷰가 위치를 알아야합니까?

분명하지 않을 경우 의견을 보내 주시기 바랍니다. 아주 추상적 인 질문입니다. 그리고 다시 설명 드리겠습니다.

+0

죄송합니다. 그렇기 때문에 귀하가 동의하지 않습니다. * 더 분명 해지십시오. * (a) 모호하지 않게하고, (b) 우리가 재현 할 수있을 정도로 구체적인 것을 제공하십시오. 여기 당신의 막연한 질문에서 읽은 것이 있습니다 - 어떻게'UIImageViews'에 저장되어있는 "사진"또는 "UIImages"배열의 프레임 원점을 추적합니까 (같은 배열 일 필요는 없습니다). 왜냐하면 여러분은'PageEditor' . 내가 얼마나 가까이에 있는지 전혀 모르겠다. 그러나 어떤 코드가 없으면 나는 당신의 질문이 애매하고 추상적 인 **을 볼 수 있기를 바란다. 행운을 빕니다. – dfd

+0

@dfd 더 명확하게하는 방법을 모르겠습니다. 나는 모델 객체의 배열을 가지고있는 모델 객체에 의존하는 ViewController를 가지고있다. 모델을 이동할 수 없습니다. 보기 만 이동할 수 있습니다. 따라서 각 뷰의 기본 모델이 그 위치를 알고 있어야합니까? 또는보기 만 해당 x/y 좌표를 알고 있어야합니까? – user1947561

+0

질문에 몇 가지 코드를 게시 할 수 있습니까? 뷰 컨트롤러가 서브 뷰 좌표를 알아야하는 이유는 무엇입니까? 당신은 무엇을 성취하려고합니까? 하위 뷰를 슈퍼 뷰로 이동하는 것은 (1) 한 번에 하나씩 iOS *에서 수행 할 수있는 작업 * - 한 번에 두 개의 뷰를 드래그 할 수 없으며 제스처로 올바르게 연결된 컨트롤러는 이미 어떤 뷰가 있는지 알고 있습니다. 움직이는. 코드에서 제스처의 견해를 알았고 태그 값을 사용하면 쉽게 식별 할 수 있습니다. 그러나 다시 한번, 코드없이 도움이되는 것은 어렵습니다. – dfd

답변

0

사진 개체에는 두 개의 x, y 좌표가 포함될 수 있습니다. 사진의 위치는에 따라 업데이트 될 수 있습니다. 당신 내부

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

는 MVC에서

for touch in touches { 
    touch.position(in:self) 
    // update Photo x,y 
} 

와 터치의 위치에 액세스 할 수 있습니다, 당신의 사진은 모델입니다. PhotoView가보기입니다.

관련 문제