成品直播原始碼推薦,TableView/CollectionView 滑動頂部效果最佳化

zhibo系統開發發表於2023-03-28

成品直播原始碼推薦,TableView/CollectionView 滑動頂部效果最佳化

預設彈簧效果

在使用 UITableView 或者 UICollectionView 時,如果開啟彈框效果,下拉是整個內容就會偏移,鬆手就會自動彈回,最常用的就是我的介面。


如果scrolleView背景色和 cell/header 一樣就不會產生什麼突兀感,但是如果靠近頂部的檢視是漸變/圖片 或者和背景色差別較大,下拉就會產生突兀感

 

獲取 ScrollView 的偏移量

透過代理方法 scrollViewDidScroll(_ scrollView: UIScrollView)可以輕鬆獲取到偏移量。

func scrollViewDidScroll(_ scrollView: UIScrollView) {
        let offsetY = scrollView.contentOffset.y
        // 下拉 y 小於 0
        if  offsetY < 0  { //let coll = scrollView as? UICollectionView,
            let index = IndexPath(item: 0, section: Section.baseInfo.rawValue)
            let cell = coll.cellForItem(at: index) as! MineInfoCollectionCell
            cell.updateOffset(offsetY) // 將偏移量傳入目標 cell, 進行改變
        }
    }


為白色檢視頂部和 Cell 頂部新增約束 containerTopCons ,並且將 Cell的裁剪取消


在 Cell 程式碼中進行偏移量賦值

class MineInfoCollectionCell: UICollectionViewCell {
    static var cellHeight: CGFloat = 300
    @IBOutlet weak var containerTopCons: NSLayoutConstraint!
    override func awakeFromNib() {
        super.awakeFromNib()
        containerHeigthCons.constant = MineInfoCollectionCell.cellHeight
    }
    
    func updateOffset(_ offset: CGFloat) {
        containerTopCons.constant = offset  // 更新偏移量
    }
}


將 scrollView 的偏移量轉移到 Cell 內部,就可以實現鏤空式的效果。

 以上就是成品直播原始碼推薦,TableView/CollectionView 滑動頂部效果最佳化, 更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2942110/,如需轉載,請註明出處,否則將追究法律責任。

相關文章