1

我正在使用UIRefreshControl下拉刷新 iOS 6,它正在工作。我正在使用自定义委托在完成时进行更新,在我调用的那个方法中,

[self->refresh endRefreshing];

我已经宣布,

UIRefreshControl *refresh;

在接口文件中,因为我无法调用

[self->refresh endRefreshing] 

通过自定义委托方法。

这一切都适用于 iOS 6,但在较低版本的 iOS 上,它会失败,因为 `UIRefreshControl' 仅适用于 iOS 6 及更高版本。

我如何有条件地声明它们以便它在 iOS6 及更低版本上都可以使用?

4

3 回答 3

2
  1. 将实例变量声明为id
  2. 将变量转换为UIRefreshControl *您使用它的任何时候。
  3. 在您使用它的地方周围,使用它if (NSClassFromString(@"UIRefreshControl") != Nil) { ... }以确保UIRefreshControl可用。
于 2012-10-16T15:17:03.703 回答
2

或者使用[[UIDevice currentDevice] systemVersion]自定义拉来刷新,例如这个:https ://github.com/leah/PullToRefresh

于 2012-10-16T15:26:41.530 回答
1

https://github.com/instructure/CKRefreshControl是 UIRefreshControl 的一个替代品,它在 iOS6+ 上使用 UIRefreshControl,在以前的版本上使用自定义的 pull-to-refresh 逻辑。我与它的开发没有任何关系,但它工作得很好!

于 2013-03-29T03:44:23.460 回答