UIScrollViewDelegate方法不响应表视图滚动

时间:2019-04-18 15:51:14

标签: ios swift uitableview uiscrollviewdelegate

我试图拉动刷新并无限滚动到表格视图

我正确设置了委托:

tableView.delegate   = self

但是在tableview中滚动时,滚动方法不会响应滚动动作,例如:

func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {


    if scrollView == self.tableView {

        let currentOffset: Float = Float(scrollView.contentOffset.y)

        if currentOffset < 25 {                
            //refresh content
        }

        let offsetY       = tableView.contentOffset.y
        let contentHeight = tableView.contentSize.height

        if offsetY > contentHeight - scrollView.frame.size.height + 25 {
            // load more
        }

    }

}

这种情况是在我将方案构建配置更改为“发布”时发生的,但是当回到“调试”时,它可以正常工作。

enter image description here

我的部署目标是:11.0和XCode版本10.2(10E125)

1 个答案:

答案 0 :(得分:0)

经过大量搜索,这可能是Swift 5编译器的问题(我在那发现了类似的错误报告):

解决方案是在每个方法中添加@objc:

@objc func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {

    if scrollView == self.tableView {

        let currentOffset: Float = Float(scrollView.contentOffset.y)

        if currentOffset < 25 {                
            //refresh content
        }

        let offsetY       = tableView.contentOffset.y
        let contentHeight = tableView.contentSize.height

        if offsetY > contentHeight - scrollView.frame.size.height + 25 {
            // load more
        }

    }

}
相关问题