【问题标题】:Refresh TableView except pull to refresh刷新 TableView 除了拉刷新
【发布时间】:2016-06-06 07:19:10
【问题描述】:

我使用 Parse 保存数据,每次向服务器添加新数据时,TableView 不会刷新并获取新数据

除了拉刷新之外,还有什么方法可以刷新 TableView 吗?

【问题讨论】:

  • 唯一的解决方法是使用推送通知来发送数据更新,这将随着用户数量的增长而变得不成比例。您现在可能想切换到 Firebase - 这将为您解决这个问题
  • 使用定时器从服务器调用数据并在新数据到来后重新加载tableView。

标签: ios swift uitableview parse-platform


【解决方案1】:

首先添加观察者方法,当你通知你。

NotificationCenter.default.post(name: Notification.Name("ReloadTableData"), object: nil)

在您使用的 tableview 的视图控制器中注册该观察者方法。

 NotificationCenter.default.addObserver(self, selector: #selector(self.methodOfReceivedNotification(notification:)), name: Notification.Name("ReloadTableData"), object: nil)

并创建一个函数并重新加载您的表格视图

这可能是您可能的解决方案,无需拉刷新即可重新加载。

【讨论】:

    【解决方案2】:

    你可以用这个:

    self.tableView.reloadData()
    

    每当用户返回应用或打开应用时。 可以在方法中添加

    applicationWillEnterForeground
    

    如果执行更新时用户仍在应用程序中,则使用推送通知。在方法中

    appDidReceiveRemoteNotification 
    

    重新加载数据。在收到任何推送通知之前,您必须注册远程通知和所有过程,但这是另一个问题。

    【讨论】:

      【解决方案3】:

      首先将刷新控件添加到tableview。所以在ViewDidLoad中添加下面的代码。

          let refresh = UIRefreshControl()
          refresh.tintColor = UIColor.redColor()
          refresh.attributedTitle = NSAttributedString(string:"Loading..!!", attributes: [NSForegroundColorAttributeName: UIColor.redColor()])
          refresh.addTarget(self, action: "handleRefresh:", forControlEvents: UIControlEvents.ValueChanged)
          self.tableView.addSubview(refresh)
          self.tableView.sendSubviewToBack(refresh)
      

      现在在您拉动刷新表格视图时调用该方法。

      func handleRefresh(refreshControl : UIRefreshControl){
          self.tableView.reloadData()
          refreshControl.endRefreshing()
      }
      

      刷新控制:

      【讨论】:

        【解决方案4】:

        parse-server 上实施推送通知或使用 LiveQuery。

        LiveQuery 允许您订阅您感兴趣的 Parse.Query。一旦订阅,服务器将在创建或更新与 Parse.Query 匹配的 Parse.Object 时实时通知客户端。

        LiveQuery 已经支持IOS

        更多详情请查看超链接。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-30
          • 1970-01-01
          • 1970-01-01
          • 2016-11-21
          • 2022-01-12
          • 2017-09-22
          相关资源
          最近更新 更多