Как перетащить UIImage из прокрутки в другой UIImage View в iphone SDK - PullRequest
3 голосов
/ 15 сентября 2011

В моем приложении у меня есть один scrollVIew, содержащий несколько изображений.

, и из прокрутки у меня есть одно представление uiimage.

Я хочу перетащить любое изображение из ScrollView и поместить егоuiimageview, который находится вне прокрутки.

возможно ли это?

помощь И предложения приветствуются

Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 15 сентября 2011

ответ gamozzii близко к тому, что вам нужно сделать, но есть одна проблема. UIScrollView будет есть штрихи, поэтому нажатие на изображение не будет иметь никакого эффекта. В результате вам придется создать подкласс UIScrollView

Я написал небольшое функциональное приложение для иллюстрации перетаскивания изображения из вида с прокруткой в ​​изображение. Вы можете скачать проект здесь.

2 голосов
/ 15 сентября 2011

Да, это должно быть возможно, вам нужно будет напрямую реализовывать события touch / drag.

Проверьте методы делегирования touchesBegan, touchesMoved и т. Д. В UIResponder.

Один из подходов будетдля создания подкласса viewview и реализации touchesBegan, touchesMoved в нем и использования этого подкласса imageview для отображения ваших изображений в виде прокрутки.

В touchesBegan создайте новый вид изображения, добавьте его во внешний вид и установите его изображениебыть таким же, как в представлении прокрутки.Вам необходимо наложить его непосредственно на исходное изображение в представлении с прокруткой, поэтому отрегулируйте его исходную рамку относительно внешнего вида, вам нужно будет использовать исходную точку прокрутки, а также размер представления смещения и смещение представления исходного изображения внутри содержимогоЧтобы перерассчитать новый источник на внешнем виде.

Затем при перемещении касаний просто перенастройте рамку этого изображения в соответствии с координатами перемещенных касаний, чтобы изображение следовало за касанием.

Выполните проверку границы по кадру целевого изображения - как только пользователь перетянет его в эту границу, сделайте изображение целевого изображения таким же, как изображение в перетаскиваемом виде, и удалите перетаскиваемое изображение из содержащего вида.и отпустите.

1 голос
/ 26 марта 2012

Если вы все еще заинтересованы в другом решении (и, конечно, для других пользователей):

Я реализовал это поведение раньше, как рекомендовано gamozzii.

Я установил canCancelContentTouches = NOна UIScrollView, чтобы убедиться, что ручка подпредставлений там касается самостоятельно.Если было затронуто подпредставление (в вашем случае изображение), я переместил вид из прокрутки в суперпредставление и начал отслеживать его перетаскивание.(Вы должны вычислить правильные координаты в новом суперпредставлении, чтобы оно оставалось на месте).После завершения перетаскивания я проверил, достигнута ли целевая область, в противном случае я переместил ее обратно в представление прокрутки.

Подвиды обрабатывают перетаскивание самостоятельно через (touchesBegan:/Moved:/Ended:/Cancelled:).

Если это недостаточно подробно, вот мой пример кода: Github: JDDroppableView

...