Це допоможе тому, хто хоче реалізувати паралакс для 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, просто змініть таблицюView, придатну для змінної collectionView
і це все. я не впевнений, чи це найкращий спосіб. але це працює для мене. сподіваюся, що він працює і для вас. і дайте мені знати, чи є якісь проблеми