首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIRefreshControl未出现

UIRefreshControl未出现
EN

Stack Overflow用户
提问于 2017-10-30 12:47:07
回答 1查看 1.1K关注 0票数 0

我的UIViewController中有一个UITableView。我正在尝试设置UIRefreshControl pull to refresh功能。下面是我的代码。

代码语言:javascript
复制
// Within Class Itself
lazy var refreshControl: UIRefreshControl = {
    let refreshControl = UIRefreshControl()
    refreshControl.addTarget(self, action:
        #selector(MainViewController.refreshData),
                             for: .valueChanged)
    refreshControl.tintColor = UIColor.darkGray

    return refreshControl
}()

// Within viewDidLoad
if #available(iOS 10.0, *) {
    myTableView.refreshControl = refreshControl
} else {
    myTableView.addSubview(refreshControl)
}

但每当我尝试在模拟器中运行它并将其向下拖动到表视图上时,什么都不会发生,也不会显示任何内容。这就像是拉动刷新的东西没有添加到表视图中。

我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2017-10-30 14:04:10

据我所知,这是因为您使用延迟初始化声明了refreshControl。并且您正在从外部将refreshControl添加到tableview。

Lazy会延迟你的refreshControl初始化,但在此之前,refreshControl会被添加到tableview中,但这里的refreshControl是空的。所以它不起作用。

尝试删除惰性,并直接初始化(类似于下面给出的内容)。我希望它能起作用。

代码语言:javascript
复制
    var refreshControl = UIRefreshControl()
    refreshControl.addTarget(self, action:
        #selector(MainViewController.refreshData),
                             for: .valueChanged)
    refreshControl.tintColor = UIColor.darkGray

// Within viewDidLoad
if #available(iOS 10.0, *) {
    myTableView.refreshControl = refreshControl
} else {
    myTableView.addSubview(refreshControl)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47008271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档