UIRefreshControl有条件地声明ios 5及以下

时间:2012-10-16 15:06:09

标签: iphone ios ios4

我正在使用UIRefreshControl下拉刷新iOS 6,它正在运行。我正在使用自定义委托进行更新,在我调用的方法中,

[self->refresh endRefreshing];

我宣布了,

UIRefreshControl *refresh;
接口文件中的

,因为我无法调用

[self->refresh endRefreshing] 

来自自定义委托方法。

它完全适用于iOS 6,但在较低版本的iOS上,它失败了,因为`UIRefreshControl'仅适用于iOS 6及更高版本。

我如何有条件地声明它们以便它在iOS6及以下版本中都能正常工作?

3 个答案:

答案 0 :(得分:2)

  1. 将实例变量声明为id
  2. 无论何时使用,都将变量投射到UIRefreshControl *
  3. 在您使用它的地方周围,使用if (NSClassFromString(@"UIRefreshControl") != Nil) { ... }确保UIRefreshControl可用。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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