Drag-n-Drop от UIPopoverController до другого UIView

Как я пошел бы о реализации перетаскивания UIView от UIPopoverController в спину UIView.

Это - функциональность, которую Страницы обеспечивают в их легкой сдобе медиа вставки, куда можно перетащить форму из UIPopoverController и бросьте его в основной документ.

Я на самом деле перепутан с панорамированием UIGestureRecognizers и где они будут реализованы.

Спасибо,

Umer

5
задан Srikar Appalaraju 17 October 2011 в 16:35
поделиться

1 ответ

Вы должны иметь дело с двумя контроллерами представления, один из которых находится в фоновом режиме и называется mainController. Один из них представлен с помощью UIPopoverViewController , называемого popoverController. Ваш popoverController может добавить UIPanGestureRecognizer к представлениям, которые пользователь может перетаскивать. Целью действия gestureRecognizer может быть метод popoverController.

Когда пользователь запускает операцию перетаскивания, вызывается метод действия с gestureRecognizer в качестве аргумента, если состояние gestureRecognizer равно UIGestureRecognizerStateBegan . Вы могли бы чем-то сохранить текущий кадр представления, чтобы иметь возможность анимировать его обратно, когда перетаскивание не удастся. Возможно, потребуется переместить представление в другой супервизор (например, окно), потому что я не уверен, что UIPopoverViewController clipsToBounds его представление.

Когда пользователь перетаскивает, ваш метод действия вызывается снова и снова с помощью gestureRecognizer в состоянии UIGestureRecognizerStateChanged . Используйте метод translationInView: в UIPanGestureRecognizer , чтобы определить, сколько пользователь перетащил, и обновите перетаскиваемый центр просмотра / кадр / преобразование соответственно.

Как только пользователь поднимает палец, метод действия вызывается в последний раз с состоянием gestureRecoginzers, установленным на UIGestureRecognizerStateEnded . Теперь пора узнать, удалось ли перетащить.Например, popoverController может спросить mainController через делегирование, есть ли цель перетаскивания под текущей позицией представления, если это так, mainController может предпринять действия, иначе popoverController будет анимировать перетаскиваемое представление обратно, откуда оно было, и добавить его обратно как subview к его представлению.

Я надеюсь, что это как-то понятно и полезно.

6
ответ дан 18 December 2019 в 14:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: