拉动刷新Swift JSON数据

时间:2016-10-12 16:06:37

标签: ios json swift xcode pull-to-refresh

我在网络上有我的json文件,我正在从那里检索数据到我的应用程序。我的应用程序是关于国家的,所以当我在我的json文件中添加一个新国家时,我想去我的应用程序,当我拉动时,我想要显示我在json文件中创建的所有县和新国家。

我已将UIRefreshControl()添加到我的应用程序但它没有刷新,而且“加载图标”也永远不会消失。这是一张图片:

the "loading icon" never disappears

当我在json文件中创建一个新国家时,我怎么能这样做(例如:英格兰)我在我的应用程序中拉出屏幕,然后我在我的应用程序中所有国家+英格兰。当所有国家/地区都加载到应用程序中时,“加载图标”会消失。

请帮我解决这个问题。非常感谢你!

这是我的UIRefreshControl代码:

import UIKit

class TableController: UITableViewController {

var TableData:Array< String > = Array < String >()

var refresh = UIRefreshControl()

override func viewDidLoad() {
    super.viewDidLoad()

    get_data_from_url("https://mylink")

    refresh.tintColor = UIColor.darkGray

    self.tableView.addSubview(refresh)

}

1 个答案:

答案 0 :(得分:0)

请尝试以下代码: -

   import UIKit

    class TableController: UITableViewController {

    var TableData:Array< String > = Array < String >()

    var refresh = UIRefreshControl()

    override func viewDidLoad() {
        super.viewDidLoad()
        refresh.tintColor = UIColor.darkGray
        refresh.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
        self.tableView.addSubview(refresh)

    }

    func refresh(sender:AnyObject) {
       // Code to refresh table view  
       get_data_from_url("https://mylink") //Call this on different thread and put the below two lines in completion handler of same thread
DispatchQueue.main.sync {
       self.tableView.reloadData()
        self.refreshControl?.endRefreshing()
      }     
 }