Жест панорамирования подключенных представлений

введите описание изображения здесьУ меня есть четыре объекта ImageView одинаковой высоты и ширины, которые заполняют экран в моем приложении для iPhone, и мне нужно перетаскивать и перемещать все виды с помощью uipangesturerecogniser. Я добавил необходимые ограничения ко всем представлениям, такие как одинаковая высота для всех, и каждое представление связано друг с другом. Поскольку каждый вид, связанный друг с другом, был проблемой, потому что, если я перетаскиваю один, другие также перемещаются. Следовательно, все верхние представления связаны с верхней частью представления, и константа была изменена при перетаскивании, как указано в ссылке iOS ›› Перетащенный вид возвращается в исходное положение ›› Автоматический макет в сочетании с проблемой UIPanGestureRecognizer. Но когда я перетаскиваю один вид и перемещаю другой, старые виды возвращаются в исходное положение. Следовательно, проблема в том, что я пробовал много вещей, и я должен поддерживать одинаковую высоту для всех и должен иметь возможность перетаскивать и перемещать их все. Может кто-нибудь помочь мне с этой проблемой?

Спасибо

код:

func toppangesture(panGesture1:UIPanGestureRecognizer) 
{
 let loc=panGesture1.translation(in: self.view) 
var diff:Float 
if (panGesture1.state.rawValue==2)
 { 
let val=Float(loc.y)
 diff=Float(val) - Float((prevValue1?.y)!)
 let yval=CGFloat(diff)
 self.topimgyconstraint?.constant+=yval
 self.topimg.frame.origin.y+=yval
 self.view.layoutIfNeeded() 
prevValue1=loc;
 }
 else if (panGesture1.state.rawValue==1) 
{ self.prevValue1=loc 
}

}


person koushik v    schedule 11.10.2016    source источник
comment
Фактический код поможет в этой ситуации.   -  person Sebastian    schedule 11.10.2016
comment
Еще одна проблема, которую я заметил, если все не связаны друг с другом и не связаны с верхней частью макета, одинаковая высота не поддерживается для всех представлений. Все взгляды перекрываются. Я не понимаю, почему ограничение равной высоты не работает   -  person koushik v    schedule 11.10.2016
comment
Приведенные выше строки кода одинаковы для всех изображений. Это метод жеста панорамирования. Во-первых, я получаю начальное местоположение и нахожу разницу с предыдущими местоположениями и устанавливаю для него константу ограничения img y и источник.   -  person koushik v    schedule 11.10.2016
comment
Можете ли вы отредактировать код в вопросе, пожалуйста?   -  person Pekka    schedule 11.10.2016
comment
Первым делом удалите это: self.topimg.frame.origin.y+=yval. Вы не должны устанавливать рамку вручную при использовании автомакета.   -  person Sebastian    schedule 11.10.2016
comment
да, именно так я делал это в начале, но это не сработало. Поэтому я добавил это.   -  person koushik v    schedule 11.10.2016
comment
это всего лишь мнение. Я предлагаю вам выполнить эту задачу немного по-другому. Используйте табличное представление. добавить распознаватель длительного нажатия. при длительном нажатии на любую ячейку скройте ее и создайте снимок ячейки и заставьте ее двигаться с измененным состоянием жеста панорамирования. определить местоположение перетаскивания после завершения жеста и поместить ячейку после пункта назначения и удалить скрытую ячейку. Я думаю, таким образом вы можете достичь лучшего. игра с ограничением для перестановки требует изменения уже добавленных ограничений. чего я не предлагаю.   -  person Mahesh Agrawal    schedule 11.10.2016
comment
Да, у меня была такая идея, но я думал, что это возможно. Если только каким-то образом я могу поддерживать одинаковую высоту для всех видов без взаимосвязи и перетаскивать объекты, все должно быть в порядке.   -  person koushik v    schedule 11.10.2016