Перетаскивание изображения из прокрутки

Это сводит меня с ума, я был на этом много лет и до сих пор могу заставить вещь делать то, что хочу!

Моя точка зрения изложена так:

RootViewController содержит (UIView) flipView

FlipView содержит (UiView) firstView

FirstView содержит прокрутку и загрузку изображений

Scrollview содержит серию настраиваемых изображений

Я могу перетаскивать пользовательские imageViews влево и вправо, и какой бы из них я ни перетащил, он появляется над всеми другими пользовательскими imageViews в scrollview из-за этой строки в пользовательском методе UIImageViews touchesBegan:

[[собственный супервизор] giveSubviewToFront: self];

Здорово! Но.....

Хотя я могу перетаскивать вертикально, а настраиваемый imageView покидает границы прокрутки по мере необходимости, я не могу заставить его отображаться над любым из изображений, которые находятся в первом просмотре?

Я также обнаружил, что если я показываю значение point.y, когда я впервые касаюсь изображения, которое нужно перетащить, оно показывает 24, когда я начинаю перетаскивать, чтобы убрать его с прокрутки, оно переходит к 26, а затем остается на этом значении, хотя я можно перетащить его в верхнюю часть экрана за всеми другими изображениями?

Я явно пропустил очевидное кровотечение .... очевидно .... помогите пожалуйста?

Спасибо


person user7865437    schedule 20.08.2010    source источник


Ответы (1)


принестиSubviewToFront: будет работать только в этом представлении, т.е. ваш scrollview должен быть перед всеми этими другими imageViews, иначе они будут закрывать ваш scrollview. Если вы хотите удалить изображение из scrollview, возможно, стоит удалить его и добавить поверх всего прямо в ваш firstView при перетаскивании.

person Eiko    schedule 20.08.2010
comment
Спасибо за ответ! Я понимаю, что вы имеете в виду по поводу вывода на передний план прокрутки, попробую. Однако я думал о вашей второй идее раньше, но не понимаю, как перенести событие касания, которое перетаскивает исходное изображение во вновь созданное? Подсказка была бы классной ....! Спасибо - person user7865437; 20.08.2010
comment
Если вы обрабатываете событие в представлении изображения, вы остаетесь в том же объекте для обработки касанием. Но, размышляя об этом, я не уверен, что UIKit думает о прикосновениях при изменении иерархии представлений. Возможно это отменит мероприятие, но попробовать стоит. - person Eiko; 20.08.2010
comment
Да, но я не понимаю, как можно сделать движущееся изображение, создать новое изображение там, где оно есть, и перенести штрихи на новое? Я не уверен, что это возможно? - person user7865437; 20.08.2010
comment
Никаких новых изображений, просто [self removeFromSuperview]; и [firstView addSubview: self]; - person Eiko; 20.08.2010
comment
Попробую через секунду, смотрится интересно! Мне просто удалось заставить его работать, используя вашу первую идею, хотя я думаю, что это беспорядочно? вызовите это из движущегося изображения: // переместите область прокрутки наверх [(CustomScrollView *) [self superview] toTop]; // теперь перемещаем движущееся изображение в верхнюю часть прокручиваемого изображения [[self superview] giveSubviewToFront: self]; и это работает! Но думает ли население, что это карбункул решения? :-) - person user7865437; 20.08.2010
comment
то, как мое приложение работает в обоих направлениях, но вывод прокрутки на передний план - лучший способ для моих целей. Также в обоих случаях мне нужно повторно вызвать цепочку представлений, чтобы сделать необходимое. Спасибо за подсказки, узнал две новые вещи ;-) - person user7865437; 21.08.2010