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