【swift】UIRefreshControlが動かなくてハマったことメモ

はじめに

今回もまさに超初心者のハマり方をした。
やりたかったのはUITableViewでリスト表示してあるデータを1番上を引っ張ったら最新の情報に更新するっていう
1番最初にみんなやりそうなやつです。Pull To Refreshとかいうのかな

実装方法

けっこういろんなサイトにやりかたのってました。

ViewController.swift

class ViewController: UITableViewDelegate, UITableViewDataSource
{
    var tableView: UITableView = UITableView()
    var refreshControll: UIRefreshControl = UIRefreshControl()

    override func viewDidLoad()
    {
        //・・・
        // テーブルビューの設定とか
        self.view.addSubview(self.tableView)

        // リフレッシュコントロールの設定をしてテーブルビューに追加
        self.refreshControll.attributedTitle = NSAttributedString(string: "更新")
        self.refreshControll.addTarget(self, action: "refresh", forControlEvents: .ValueChanged)
        self.tableView.addSubview(self.refreshControll)
    }

    // 引っ張ったら呼ばれる
    func refresh()
    {
        println("call refresh.")

        // テーブルビューの更新処理とか
    }
}

こんなかんじで動きました

f:id:yoppy0066:20150915103145p:plain

で、何にハマったのかというと

引っ張ってもprintlnした箇所が出力されない。
で、その原因は引っ張りがたりないということでした笑

とくにシュミレーターだとひっぱりずらいので更新ボタンとグルグル画像が見えたら更新始まるのかと思ったら
そんなことはなく、ちゃんと引っ張り切らないとダメっていうことでした

こんなことで3時間くらいは潰してしまったかも、、、悲しいです

以上です