我尝试制作协议UIScrollViewDelegate
的默认实现,例如:
extension UIScrollViewDelegate {
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
//...
}
}
但是在子类UITableViewController
中(符合UIScrollViewDelegate
和)不包含任何实现此方法(无论是在基类还是在子类中),这个扩展提供的实现都胜出了被称为
有没有解决方案为这些方法提供默认实现?
答案 0 :(得分:2)
只需创建UIScrollView
的扩展名即可符合UIScrollViewDelegate
协议,如下所示:
extension UIScrollView: UIScrollViewDelegate {
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
// ...
}
}
答案 1 :(得分:1)
您正尝试在Objective-C协议上进行Swift协议扩展。这永远不会起作用,因为Objective-C不能看到一个Swift协议扩展,所以Cocoa(它是Objective-C)永远不会知道你的实现,也永远不会调用它。