我可以为UIScrollViewDelegate使用协议扩展来为我所有符合该协议的视图提供scrollViewDidScroll的默认实现吗?

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

最佳答案

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

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

仅在Swift 2.0中:您似乎应该可以执行以下操作,但似乎不起作用:
extension UIScrollViewDelegate{
    func scrollViewDidScroll(scrollView: UIScrollView){
        //do something
    }
}

您以符合该协议的类型编写的scrollViewDidScroll的任何实现,我相信都应该覆盖此实现。

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

10-14 16:51