UIScrollView Delegate Re-Routing - 检查 UIScrollView 的状态

Posted

技术标签:

【中文标题】UIScrollView Delegate Re-Routing - 检查 UIScrollView 的状态【英文标题】:UIScrollView Delegate Re-Routing - To check the state of UIScrollView 【发布时间】:2018-03-12 11:38:33 【问题描述】:

我在同一个视图(兄弟姐妹)上有一个 tableView 和按钮,

tableView 滚动时需要隐藏按钮(上下方向没问题),停止滚动时显示按钮

我尝试了以下代码,但它不起作用(正确)

func scrollViewDidScroll(_ scrollView: UIScrollView) 
    self.vcView.hideButton()
 

 func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) 
    self.vcView.showButton();
 

经过大量搜索,我找到了这个article,但它是在 Objective C 中,谁能帮我把它转换成 Swift 3。

【问题讨论】:

【参考方案1】:

为什么不简单地实现这两个委托方法:

func scrollViewWillBeginDragging(_ scrollView: UIScrollView) 
    self.vcView.hideButton()


func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) 
    self.vcView.showButton();

如果您只想在滚动时显示和隐藏按钮或任何视图,这将起作用。请务必设置滚动视图委托,它应该可以正常工作。 无需将该 objc 代码转换为 swift。

https://screencast.com/t/eTq9Nzfsgs6E

【讨论】:

可以,不过我修改了,更新代码,谢谢

以上是关于UIScrollView Delegate Re-Routing - 检查 UIScrollView 的状态的主要内容,如果未能解决你的问题,请参考以下文章

UIViewController中有两个scrollView时如何调用UIScrollView的delegate方法

Swift UIScrollView 不滚动但响应 setContentOffset 和 Delegate 响应

ScrollView中使用Delegate 滚动 UIKit的UIScrollView转化为在SwiftUI中使用

ScrollView中使用Delegate 滚动 UIKit的UIScrollView转化为在SwiftUI中使用

我能以某种方式从 UIPageViewController 获取 scrollViewDidScroll: UIScrollView Delegate 方法吗?

UIScrollView的属性总结