2015-10-16 12 views
4

Я пытаюсь получить некоторые советы о том, как реализовать аналогичное поведение «перетащить, чтобы изменить порядок», найденное на UITableView, но на UIStackView.UIStackView - перетащите, чтобы изменить порядок уложенных объектов?

До сих пор это то, что я имею в виду:

  1. Добавить длинный пресс жест распознаватель к каждому из arrangedSubview s
  2. На длительное нажатие, добавить наложение UIView как подвид в главном окне и это заполняет весь основной вид. Этот вид наложения будет выступать в качестве «холста», своего рода, как я тащу временный «изменить порядок» вид-we'll вызов этого tempView - около (подробнее об этом в 4)
  3. Установите alpha из arrangedSubview до 0 (установка hidden = true приведет к UIStackView анимации закрытия, как если бы она была удалена.
  4. Добавить tempView в виде наложения (см 3) с тем же начальным кадром в качестве arrangedSubview
  5. Перетащите tempView вверх или вниз и вставить/удалить фактический arrangedSubview по расчетному индексу bas ed на позиции tempView.
  6. Слушайте, когда длинное нажатие state равно .Ended и установите arrangedSubview.alpha = 1 и снимите вид сверху с основного вида.

Любые предложения? Любые явные отверстия, которые кто-либо видит? Что бы вы изменили? Какое направление вы бы предприняли для этого?

+1

, вероятно, было бы намного лучше, если бы вы использовали табличное представление, оно отлично справляется с переупорядочивающими анимациями и материалами, что потребует много усилий для тиражирования, если вы попытаетесь сделать это сами. есть ли конкретная причина, почему вам нужно использовать stackview? – Fonix

+1

@Fonix Я знаю, что было бы проще использовать UITableView, но я пытаюсь заставить эту работу работать с UIStackView (и чистой радостью), чтобы заставить его работать с UIStackView. –

+0

Звучит неплохо - Вам удалось его построить? Я начал переносить большую часть своего кода на UIStackViews, и это была огромная победа над моим старым кодом. Переупорядочение представлений в UIStackView решило бы одну из моих больших проблем в настоящее время. – Mof

ответ

3

Я создал пользовательский элемент управления для решения этой проблемы, который можно найти here.

См. Мой последний комментарий к вопросу о проблемах и будущих обновлениях.