uitableview 的 UIRefreshControl 仅在 iphone 6 中不起作用

Posted

技术标签:

【中文标题】uitableview 的 UIRefreshControl 仅在 iphone 6 中不起作用【英文标题】:UIRefreshControl for uitableview is not working in only iphone 6 【发布时间】:2016-12-19 05:32:37 【问题描述】:

实际上,除了 iPhone-6 之外的所有设备都可以正常工作。请帮我解决这个问题。

我的代码是

var refreshControl = UIRefreshControl()

        self.refreshControl.addTarget(self, action: #selector(self.refresh(_:)), for: .valueChanged)
        self.tableView.addSubview(self.refreshControl)


func refresh(_ sender:AnyObject) 
    if self.appDel.isNetworkEnabled
    
        DispatchQueue.main.async 
            if(self.page < Int(self.total_pages)! )
            
                self.page = self.page + 1
                self.fetchMessageApiCall()
            
        
    
    else
    
        self.singletonObj.showAlert("", message: "No Internet")
    

    self.refreshControl.endRefreshing()

【问题讨论】:

UIRefreshControl添加相关代码。 这一行问题没人能解决你的问题。 除 iphone 6 外的所有设备都可以正常工作 self.refreshControl.addTarget(self, action: #selector(self.refresh(_:)), for: .valueChanged) self.tableView.addSubview(self.refreshControl) func refresh(_ sender:AnyObject) if self.appDel.isNetworkEnabled DispatchQueue.main.async if(self.page 【参考方案1】:

当您完成从 API 获取数据后,您应该输入此 self.refreshControl.endRefreshing()

【讨论】:

【参考方案2】:

只需像这样分配刷新控制器:

    let tableViewControler = UITableViewController()
    tableViewControler.tableView = self.tableView
    self.refreshController = UIRefreshControl()
    self.refreshController.tintColor = UIColor(red: 87.0/255.0, green: 53.0/255.0, blue: 129.0/255.0, alpha: 1.0)
    let attributedString = NSAttributedString(string: "Refresh")
    self.refreshController.attributedTitle = attributedString
    self.refreshController.addTarget(self, action:#selector(self.refresh(_:)), forControlEvents: UIControlEvents.ValueChanged)
    tableViewControler.refreshControl = self.refreshController

希望对你有帮助

【讨论】:

我认为只有我写的相同。 @NagarajaGhantasala 只是使用它,我将 tableView 对象分配给UITableViewController 代码与此问题正文中的代码相同【参考方案3】:

SWIFT 3.0

我在 ios 10 及更高版本中遇到了这个问题,并使用以下代码解决了它

refreshControl = UIRefreshControl()

refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
refreshControl.addTarget(self, action: #selector(refresh(sender:)), for: UIControlEvents.valueChanged)
    if #available(iOS 10.0, *) 
        self.gigListTableView.refreshControl = refreshControl
     else 
        // Fallback on earlier versions
        self.gigListTableView.addSubview(refreshControl)
    

【讨论】:

以上是关于uitableview 的 UIRefreshControl 仅在 iphone 6 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationBar.prefersLargeTitles 打开时的错误 UIRefreshControl 行为

获取 `UIRefreshControl` 到 `UITableViewController` 内容上方的北边,而不是在标题下?

搜索栏行为类似于原生联系人应用程序,但具有刷新控件

连接 UITableView + UITableView

UItableview 单元格的动态高度与 UItableview 单元格内的 UItableview

水平 UITableView 中的垂直 UITableView