0

この質問で、iOS5 と iOS6 の両方をサポートするアプリの UIRefreshControl の代わりに CKRefreshControl を使用できることを見てきました。Githubでコードを見つけましたが、実装方法がわかりません。 ジョンは、同じコードを使用するように言いました。しかし、何かが欠けています。CKRefreshControl コードはどこにありますか?

self.refreshControl = [[UIRefreshControl alloc] init];

ありがとう!

4

2 に答える 2

2

CKRefreshControlCKRefreshControl ソース自体以外に必要な特定のコードはありません。が最初にリリースされたとき、 へのすべての呼び出しを への呼び出しCKRefreshControlに置き換える必要があり、iOS 5 または iOS 6+ のどちらを使用しているかに基づいて、正しいクラスに自動的にディスパッチされました。UIRefreshControlCKRefreshControl

しかし、John Haitasからの最近の貢献により、その必要はなくなりました。代わりに、CKRefreshControl ソース コードをコンパイルしてリンクするだけで、UIRefreshControliOS 5 を対象とするときにクラスを使用できるようになります。その結果、引き続き を使用でき[[UIRefreshControl alloc] init]、iOS 5 で自動的に動作します。

なぜあなたは私を信じなければならないのですか?最初に書いたのは私だからCKRefreshControl

于 2013-03-22T16:51:14.770 に答える
0

1) 3 つのクラスとプレフィックスをプロジェクトに追加します。

 - CKParagraphStyle.h  and  CKParagraphStyle.m
 - CKParagraphStyle.h  and  CKRefreshArrowView.m
 - CKRefreshControl.h  and  CKRefreshControl.m
 - CKRefreshControl-Prefix.pch  (goes into TableVCs using Refresh).

2) QuartzCore.framework をターゲット ライブラリに追加します。

3) このメソッドを追加します。

-(void)doRefresh:(CKRefreshControl *)sender {
        NSLog(@"refreshing");
        [self.refreshControl performSelector:@selector(endRefreshing) withObject:nil afterDelay:1.0];
    }

最後に、通常どおり UIRefreshControl を使用しますが、doRefresh メソッドを選択します。

self.refreshControl = [[UIRefreshControl alloc] init];
[self.refreshControl addTarget:self action:@selector(doRefresh:) forControlEvents:UIControlEventValueChanged];
于 2013-03-09T14:38:41.650 に答える