Button 随 ScrollView 滚动 划入划出

这篇博客讨论了在ScrollViewDelegate中如何实现发送按钮的滑动隐藏和显示动画,特别是在用户下拉刷新、页面切换等场景下避免隐藏按钮的bug。通过判断滚动范围和拖动状态,确保按钮在适当的时候隐藏和显示,修复了滚动停止后按钮未自动出现的问题。
摘要由CSDN通过智能技术生成
// 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
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值