Это поможет тем, кто хочет реализовать параллакс для tableView или collectionView.
прежде всего создайте ячейку для представления таблицы и поместите в нее представление изображения.
установите высоту изображения немного больше высоты ячейки. если высота ячейки = 160, пусть высота изображения будет 200 (для создания эффекта параллакса, и вы можете изменить его соответствующим образом)
поместите эти две переменные в свой viewController или любой класс, в котором ваш делегат tableView расширен
let imageHeight:CGFloat = 150.0
let OffsetSpeed: CGFloat = 25.0
- добавьте следующий код в тот же класс
func scrollViewDidScroll(scrollView: UIScrollView) {
// print("inside scroll")
if let visibleCells = seriesTabelView.visibleCells as? [SeriesTableViewCell] {
for parallaxCell in visibleCells {
var yOffset = ((seriesTabelView.contentOffset.y - parallaxCell.frame.origin.y) / imageHeight) * OffsetSpeedTwo
parallaxCell.offset(CGPointMake(0.0, yOffset))
}
}
}
func offset(offset: CGPoint) {
posterImage.frame = CGRectOffset(self.posterImage.bounds, offset.x, offset.y)
}
- были posterImage - мой UIImageView
Если вы хотите реализовать это в collectionView, просто измените tableView vairable на вашу переменную collectionView.
и это все. я не уверен, что это лучший способ. но у меня это работает. надеюсь, что это сработает и для вас. и дайте мне знать, если возникнут проблемы