Я реализую пользовательский интерфейс, который выглядит следующим образом:
У меня есть сетка 4x4, где несколько ячеек могут быть отключены (или могут иметьсуществующие предметы).Здесь ячейка A2 отключена.Все остальные ячейки включены.У меня есть блок шириной 3 клетки.Форма этого блока может быть переменной.Это может быть линия или точка в одной ячейке, или она может иметь L-образную форму и т. Д.
Я хочу, чтобы пользователь мог перетаскивать этот блок в мою сетку, и форма должна привязываться к ближайшему пустому.пространство.
Так, например, если пользователь перетаскивает этот блок близко к нижней строке D и около 2,3,4 ячеек, он будет привязан там.
Если пользователь перетаскивает этот блок рядом с нижней строкой D и рядом с ячейками 1,2,3, он будет привязан там.
Но если пользователь перетаскивает верхнюю строку A, он либо возвращается обратно в исходное положение, либо ИЛИ привязывается к ближайшим ячейкам в строке B, так как вторая ячейка в строке A отключена.
Я не ищу код, я в основном ищу идею о том, как мне следует реализовать что-то подобное?
Я работал с UIPanGestureRecognizers, а также работал с функцией перетаскивания в UICollectionView, ноони были в основном для отдельных ячеек, и я не думаю, что применимо в моей проблеме блоков переменной формы.