Моя настройка:
Что я пытаюсь сделать:
Когда страница прокручивается, яхотите, чтобы связанный заголовок страницы привязывался к центру. Названия в настоящее время привязываются к левому краю, что не совсем то, что я хочу.
Как все выглядит в настоящее время:
Мой код:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
// currentPage Int 0, 1, and 2 represent my 3 pages
let indexPath = IndexPath(item: scrollView.currentPage, section: 0)
// This is my collectionView with the cells that contain titles
let collectionView = self.homeViewModel.menuTabsCollectionView
// Here I get the width of the cell for the current page
guard let currentCellWidth = collectionView.cellForItem(at: indexPath)?.frame.size.width else {
return
}
// Disable vertical scroll
scrollView.contentOffset.y = 0
print("OFFSET \(scrollView.contentOffset.x)")
print("CELL WIDTH \(currentCellWidth)")
if scrollView.currentPage == 0 {
collectionView.contentOffset.x = scrollView.contentOffset.x / 3
}
if scrollView.currentPage == 1 {
collectionView.contentOffset.x = scrollView.contentOffset.x / 3
}
if scrollView.currentPage == 2 {
collectionView.contentOffset.x = scrollView.contentOffset.x / 3
}
}
На данный момент я заблокировал contentOffset scrollViews для contentOffset collectionView, и я замедлил скорость прокрутки collectionView вместе спредставление прокрутки.
Мне нужно использовать ширину ячейки collectionView вместе с contentOffset scrollView, чтобы выяснить, насколько collectionView должен перемещаться пропорционально scrollView, и иметь заголовок для каждой страницы. в конечном итоге окажемся в центре к тому времени, когда страница закончит прокрутку.
Причина, по которой я использую операторы if для каждой страницы, заключается в том, что ширина, используемая в формуле, будет отличаться в зависимости от того, на какую страницу выполняется прокрутка.
Не могу понять, как расположить заголовки в центре. Если я использую метод делегата scrollToCellAtIndexPath, я теряю эффект параллакса.
Я бы очень признателен за некоторые вводимые данные / ответы здесь.
Заранее спасибо