天天看點

Button 随 ScrollView 滾動 劃入劃出

// ScrollView Delegate 中

// MARK: - 發送按鈕滑動動畫
    
    /// 滑動時隐藏按鈕,需判斷滑動範圍,和是否拖動。否則下拉重新整理、push進其他頁後再回到本頁會導緻按鈕隐藏,而停止方法未調用,按鈕隐藏後沒有自動出現的bug。
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        if scrollView.contentOffset.y > 0 {
            if scrollView.isDragging {
                UIView.animate(withDuration: 0.5) {
                    self.postButton.transform = CGAffineTransform(translationX: 127, y: 0)
                }
            }
        }
    }
    
    /// 停止拖動,顯示按鈕
    func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
        if decelerate == false {
            UIView.animate(withDuration: 0.5) {
                self.postButton.transform = .identity
            }
        }
    }
    
    /// 滾動停止,顯示按鈕
    func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
        UIView.animate(withDuration: 0.5) {
            self.postButton.transform = .identity
        }
    }