ScrollView UIRefreshControl不是调用函数

时间:2017-04-07 10:54:10

标签: swift ios10 uirefreshcontrol

我在一个swift 3中添加了一个refreshControl到iOS 10中的scrollView,但是没有调用添加的函数。

这是我的代码。

let rc = UIRefreshControl()
rc.addTarget(self, action: #selector(refresh), for: UIControlEvents.valueChanged)
if #available(iOS 10.0, *) {
    scrollView.refreshControl = rc
}

...

@objc func refresh(_ sender: AnyObject) {
    let response = serverHelper.send(word: JSONParser.getAllGamesForPlayer(player: localPlayer))
    let games = JSONParser.parseToArrayDic(string: response)
    print("All games \(games)")
    addAllGameButtons(games: games)
    sender.endRefreshing()
}

我希望refreshContol调用refresh函数。 但是这个函数从未被调用过。 我在这里做错了什么?

修改

refreshControl正在运行,但问题是,我必须向下滚动到屏幕的末尾才能调用该函数。 我的scrollView高达1200像素。 谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

当我的视图控制器在故事板上有size: freeform 1500px时,我遇到了这个错误。 当我把它改成固定大小&推断,刷新开始按预期工作。

看起来苹果方面的一个错误是刷新控件,当从Xib / Storyboard加载视图时设置了值更改距离,但在为设备布局时没有更新。