24098


以下のコードで、更新しても、画像のように更新が終わりません。  
どこが悪いのでしょうか？  
Xcodeは7.3です。

[code]

    import UIKit
    
    class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
    
      @IBOutlet weak var tableView: UITableView!
    
      let data = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n"]
      var refreshCtrl = UIRefreshControl()
    
      override func viewDidLoad() {
        super.viewDidLoad()
        self.refreshCtrl.addTarget(self, action: #selector(ViewController.reload), forControlEvents: .TouchUpInside)
        self.tableView.dataSource = self
        self.tableView.delegate = self
        self.tableView.addSubview(refreshCtrl)
      }
    
      func reload() {
        tableView.reloadData()
        refreshCtrl.endRefreshing()
      }
    
      func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
      }
    
      func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return data.count
      }
    
      func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell = tableView.dequeueReusableCellWithIdentifier("hoge")
        if cell == nil {
          cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "hoge")
        }
        cell?.textLabel?.text = data[indexPath.row]
        return cell!
      }
    
      override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
      }
    
    }
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/uQvRP.png)](https://i.stack.imgur.com/uQvRP.png)


CC BY-SA 3.0
2016-04-17T12:38:24.797
24095
2016-04-17T13:04:28.143
question
ios swift uitableview
UIRefreshControlの更新が終わらない


この部分ですが、

[code]

        self.refreshCtrl.addTarget(self, action: #selector(ViewController.reload), forControlEvents: .TouchUpInside)
    
[/code]

`UIRefreshControl`でクリック(タップ)イベントを拾っても仕方ない(そもそもうまく拾えないようですが)ので、こちらの間違いではないかと思います。

[code]

        self.refreshCtrl.addTarget(self, action: #selector(ViewController.reload), forControlEvents: .ValueChanged)
    
[/code]


CC BY-SA 3.0
2016-04-17T13:04:28.143
24098
2016-04-17T13:04:28.143
13972
24095
answer