UIScrollViewDelegate方法不响应表视图滚动

问题描述 投票:0回答:1

我尝试进行拉动以刷新并无限滚动到表格视图

我正确设置了代理人:

tableView.delegate   = self

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

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)

ios swift uitableview uiscrollviewdelegate
1个回答
2
投票

经过大量搜索,这可能是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
        }

    }

}
© www.soinside.com 2019 - 2024. All rights reserved.