ios - Swift:UIScrollViewDelegate 扩展

标签 ios swift

我可以使用 UIScrollViewDelegate 的协议(protocol)扩展来为所有符合此协议(protocol)的 View 提供 scrollViewDidScroll 的默认实现吗?

因为我希望能够在单个文件中通过所有其他 View 传播相同的 scrollViewDidScroll 实现,而不必在每个 View 中实现此方法,即 6。

最佳答案

对我有用的是在实现协议(protocol)的类型上实现扩展,即 UIViewController

extension UIViewController{
     func scrollViewDidScroll(scrollView: UIScrollView){
        //do something
        print("scrolled\n")
    }
}

仅在 Swift 2.0 中:看起来您应该可以执行以下操作,但它似乎不起作用:

extension UIScrollViewDelegate{
    func scrollViewDidScroll(scrollView: UIScrollView){
        //do something
    }
}

我认为您以符合此协议(protocol)的类型编写的任何 scrollViewDidScroll 实现都应该覆盖此实现。

关于ios - Swift:UIScrollViewDelegate 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31271849/

相关文章:

ios - Swift physicsbody 边缘识别问题

ios - 如何让在旧版 Xcode 中构建的应用程序同时支持 32 位和 64 位?

arrays - 使 Swift 数组语句更简洁

ios - Twitter.sharedInstance().APIClient 为零

ios - 自定义 UITableViewCell 内的 UIPickerView 未初始化,awakeFromNib() 未被调用

ios - 以编程方式计算 Storyboard UIViewController 中附加的 segues

ios - 如何将 JSON 数据从登录 View 传递到多 View Controller ,是否可能?

ios - 布局完成后的 Swift Autolayout 回调函数

ios - UISplitViewController - 调整详细 View 的大小

ios - 如何消除我的 CABasicAnimation 中的 "jump"?