我在this question中看到CKRefreshControl可以用作同时支持iOS5和iOS6的应用程序的UIRefreshControl的替代品。我在Github上找到了代码,但我不知道如何实现它。 约翰说只使用相同的代码。但是缺少一些东西。CKRefreshControl 代码在哪里?
self.refreshControl = [[UIRefreshControl alloc] init];
谢谢!
CKRefreshControl
除了 CKRefreshControl 源本身之外,不需要任何特定代码。CKRefreshControl
首次发布时,您必须将所有调用替换为UIRefreshControl
调用CKRefreshControl
,然后它会根据您使用的是 iOS 5 还是 iOS 6+ 自动分派到正确的类。
然而,随着John Haitas最近的贡献,这不再是必要的了。相反,只需针对 CKRefreshControl 源代码进行编译和链接即可使UIRefreshControl
该类在面向 iOS 5 时可用。因此,您可以继续使用[[UIRefreshControl alloc] init]
,它会自动在 iOS 5 上运行。
你为什么要相信我?因为我是第一个写作的人CKRefreshControl
。
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];