У меня есть Scrollview и Collectionview, они оба прокручиваются по горизонтали
scrollview имеют страницы, и я хочу, чтобы при прокрутке scrollview также прокручивал коллекцию и выбирал ту же индексированную ячейку просмотра, что и индекс страницы прокрутки
проблема здесь в том, что после прокрутки scrollview также прокручивает collectionview и выбирает ячейку, такую же индексированную, как страницы scrollview, но после этого viewview не прокручивает сам себя.
Извините, возможно, неправильный формат вопроса, я новичок здесь
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell=collectionView.dequeueReusableCell(withReuseIdentifier: "mycell", for: indexPath) as! MenuListCollectionViewCell
cell.commoninit(name: ListOfMenu[indexPath.row])
let IndexForCol = (scrollview.contentOffset.x / scrollview.frame.size.width).rounded()
if selectedIndex == Int(indexPath.row)
{
cell.backgroundColor = UIColor(hue: 0.6167, saturation: 1, brightness: 0.97, alpha: 1.0)
cell.layer.cornerRadius = 14
}
if indexPath.row == Int(IndexForCol) {
cell.backgroundColor = UIColor(hue: 0.6167, saturation: 1, brightness: 0.97, alpha: 1.0)
}
else
{
cell.backgroundColor = UIColor.clear
}
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
selectedIndex = indexPath.row
UIView.animate(withDuration: 0.5, animations: {
self.scrollview.contentOffset.x = self.scrollview.frame.width*CGFloat(indexPath.row)
})
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let indexOfPage = round(scrollview.contentOffset.x / scrollview.frame.size.width)
UIView.animate(withDuration: 0.5, animations: {
self.collectionview.scrollToItem(at:IndexPath(item: Int(indexOfPage), section: 0), at: .right, animated: false)
})
collectionview.reloadData()
}
Изображение симулятора: