Хы, я пытаюсь достичь этого элемента пользовательского интерфейса, который кажется (мне) как горизонтальный UIPickerView. Вот пример GIF-файла при создании памятки на iOS:
Пример GIF
Я пытался сделать это с помощью UICollectionView и пользовательского UICollectionViewFlowLayout. Но без особой удачи.
То, что я до сих пор пробовал, использует
func targetContentOffset(forProposedContentOffset proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint) -> CGPoint
Чтобы остановить прокрутку в каждой ячейке, придавая ей ощущение подкачки. Но для того, чтобы сделать это, я на самом деле должен сделать
var collectionViewContentSize: CGSize
Возвращает намного больший размер контента, чем он есть на самом деле, иначе он просто отскочит collectionView и ничего не встанет на место, независимо от того, что я возвратил в предыдущей функции.
Я также пытался использовать
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>)
Чтобы установить collectionView.contentOffset
, но это вызывало странные скачки в анимации, и опять-таки это не изменило это должным образом.
Помимо постраничного разбиения на ячейку, я хотел бы добиться того, что для этого элемента пользовательского интерфейса, небольшой хаптической обратной связи на каждом свитке при прохождении через элементы и постепенного появления и исчезновения левого и правого элементов на границе. Если кто-нибудь может указать мне правильное направление, может быть, UICollectionView - это не тот путь? Я был бы очень признателен. Спасибо