0

我在this question中看到CKRefreshControl可以用作同时支持iOS5和iOS6的应用程序的UIRefreshControl的替代品。我在Github上找到了代码,但我不知道如何实现它。 约翰说只使用相同的代码。但是缺少一些东西。CKRefreshControl 代码在哪里?

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

谢谢!

4

2 回答 2

2

CKRefreshControl除了 CKRefreshControl 源本身之外,不需要任何特定代码。CKRefreshControl首次发布时,您必须将所有调用替换为UIRefreshControl调用CKRefreshControl,然后它会根据您使用的是 iOS 5 还是 iOS 6+ 自动分派到正确的类。

然而,随着John Haitas最近的贡献,这不再是必要的了。相反,只需针对 CKRefreshControl 源代码进行编译和链接即可使UIRefreshControl该类在面向 iOS 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 回答