สิ่งนี้จะช่วยให้ผู้ที่ต้องการใช้พารัลแลกซ์สำหรับ 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 ที่ใช้งานได้กับตัวแปร collectionView ของคุณ
และนั่นคือมัน ฉันไม่แน่ใจว่านี่เป็นวิธีที่ดีที่สุดหรือไม่ แต่มันได้ผลสำหรับฉัน หวังว่ามันจะเหมาะกับคุณเช่นกัน และแจ้งให้เราทราบหากมีปัญหาใด ๆ