「テーブルをグイッと引っ張ったらデータをリロード」…もう誰もが当たり前だと思っているこの操作をUITableViewControllerに追加してくれるのがPullToRefreshライブラリです。

商用利用にも安心のMITライセンス!
プロジェクトに追加する
まずは、いつものように、Gitで取得。
1 | git clone git://github.com/leah/PullToRefresh.git |
次に必要な下記のファイルをコピーして、自分のプロジェクトに追加します。
- PullRefreshTableViewController.h
- PullRefreshTableViewController.m
- arrow.png
最後に、必要なFrameworkとして、QuartzCore framework を追加します。

使い方、カスタマイズ
自分のプロジェクト内では、UITableViewControllerの派生クラスとして作られているPullRefreshTableViewControllerクラスを派生させて使います。
既にUITableViewControllerを使っているプロジェクトなら、ほんとうに簡単に機能追加ができます!
読み込みのためのセルに表示されているメッセージ系は、下記のようにそれぞれプロパティが用意されているのでこれを使い変更できます。
1 2 3 | @property (nonatomic, copy) NSString *textPull; // for "Pull down to refresh…" @property (nonatomic, copy) NSString *textRelease; // for "Release to refresh…" @property (nonatomic, copy) NSString *textLoading; // for "Loading..." |
肝心のリフレッシュ処理ですが、PullRefreshTableViewController.m では下記のようなrefreshメソッドが定義されており、引っ張った後の処理はこれをオーバーライドして定義します。
1 2 3 4 5 | - (void)refresh { // This is just a demo. Override this method with your custom reload action. // Don't forget to call stopLoading at the end. [self performSelector:@selector(stopLoading) withObject:nil afterDelay:2.0]; } |
別のライブラリ
@xcatsanさんが、実装している同様のライブラリも紹介しておきます。
どうやって実現しているかの詳細な説明があり、ためになります。
「Cocoaの日々」、いつも参考にしています!
特許について:GJ! Loren Brichter
このライブラリを試しているときには気にしていなかったのですが、引っ張ってリロード、という操作方法は「Tweetie」というTwitterクライアントアプリで初めて実装され、その際に特許をとられているそうです。
ただ、特許保持者のLoren Brichterはこの操作方法を他の開発者が使うことは禁止しない、と明言しています。
@michellusthof absolutely not
— Loren Brichterさん (@lorenb) 8月 20, 2010
素晴らしい!!!
[AD]
↓WordPressとの連携とか、GPSとか、チューニング、デバッグ方法まで、素晴らしいノウハウが詰まっている良書!
著者/訳者:橋本 佳幸
出版社:秀和システム( 2009-11-19 )
定価:¥ 2,940
Amazon価格:¥ 2,940
単行本 ( 279 ページ )
ISBN-10 : 4798024244
ISBN-13 : 9784798024240
↓バージョンが古く見えるけど、特に問題なく分かりやすい書籍です。
iPhone SDK 3 プログラミング大全 実践プログラミング (MacPeople Books)
著者/訳者:木下 誠
出版社:アスキー・メディアワークス( 2009-09-08 )
定価:¥ 2,940
Amazon価格:¥ 2,940
大型本 ( 416 ページ )
ISBN-10 : 4048679910
ISBN-13 : 9784048679916



















