【问题标题】:Pull to Refresh (ios)拉动刷新 (ios)
【发布时间】:2011-07-05 06:00:00
【问题描述】:

我最近在这里实现了拉动刷新:https://github.com/leah/PullToRefresh。它有点工作,但是它被一个旋转的活动指示器卡住了。它们的箭头右侧也没有文字。我究竟做错了什么?谢谢!

【问题讨论】:

  • 代码不多。刚刚添加了类和石英核心。然后子类化我的表视图控制器代码:@interface RootViewController : PullRefreshTableViewController 并添加了一个 void refresh
  • 尝试在启用 VoiceOver 的情况下执行此操作,并感受 VoiceOver 用户在使用具有糟糕的令人耳目一新 UI 的应用程序时所感受到的痛苦。

标签: iphone objective-c ipad ios


【解决方案1】:

没有代码没有人可以说,但也许可以尝试不同的 Pull To Refresh 实现,比如enormego (EGO) 版本,代码在github, here

它在 Facebook 应用程序中使用,所以它确实有效。

【讨论】:

【解决方案2】:

Apple 在 iOS6 中引入了 UIRefreshControl。您可以使用

将它集成到您​​的 UITableViewController 中
- (void)viewDidLoad {
    [super viewDidLoad];
    // Initialize Refresh Control
    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
    // Configure Refresh Control
    [refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
    // Configure View Controller
    [self setRefreshControl:refreshControl];
}

refresh: 方法将触发更新,您可以使用以下方法在 API 回调中停止更新:

 [(UIRefreshControl *)sender endRefreshing];

【讨论】:

    【解决方案3】:

    我是 iOS 开发的新手,我试图在 iOS 6 中实现拉动刷新。在寻找解决方案时,我偶然发现了这篇博文,发现它很有帮助,http://www.intertech.com/Blog/Post/iOS-6-Pull-to-Refresh-(UIRefreshControl).aspx。它以易于遵循的方式列出了实施拉动刷新的步骤。任何想要在 iOS 6 中自己完成此操作的人都应该查看该博客。

    UIRefreshControl 目前只能用于表格视图。要成功添加刷新控件,需要执行几个步骤:

    1。 创建一个回调方法来处理您的刷新逻辑。当用户下拉表格视图时,应该调用回调方法。方法的签名应该有一个参数:一个指向 UIRefreshControl 的指针。

    注意:步骤 2-4 都在 Table View Controller 的 viewDidLoad 方法中完成。

    2。 使用基本的“alloc/init”实例化 UIRefreshControl。

    3。 在触发 ValueChange 事件时,将操作连接到刷新控件以调用您的回调方法。

    4。 将刷新控件添加到 Table View Controller 的“refreshControl”属性中。

    【讨论】:

    • 您能否添加该页面的摘录,以便您的答案在链接失效时仍然有用?此外,我们对技术细节(实际答案)比对博客的建议更感兴趣。
    【解决方案4】:

    我更喜欢 EGO 实现而不是 leah 实现,因为它不需要视图控制器的子类。 github 中的原始 EGO 有点乱,没有 .gitnore 文件,并且不必要地添加了许多 .DS_Store 文件。看看许多叉子中的一些并选择一个。

    “emreberge”分支看起来是一个不错的版本,文件组织和文档也更好!

    https://github.com/emreberge/EGOTableViewPullRefresh

    【讨论】:

      【解决方案5】:

      我发现这个库非常有用、精美且最新:https://github.com/Yalantis/Pull-to-Refresh.Rentals-iOS

      (其他答案的建议似乎陈旧且未维护)

      【讨论】:

        【解决方案6】:

        现在,对于比上述 iOS 5 更新的 iOS 版本,您可以使用:UIRefreshControl.

        有一个非常好的教程可以帮助您为您的 iOS 应用程序创建自定义拉取刷新:http://ios-blog.co.uk/tutorials/how-to-add-a-custom-pull-to-refresh-in-your-ios-application/

        【讨论】:

          【解决方案7】:

          您可以使用:https://github.com/ngocbinh02/httablekit

          支持 iOS 5.0 或更高版本

          拉动刷新tableview

              import <HTTableKit/TableKit>
          
          ....
          
          //like UIRefreshControll
          
          [tableview setPullToRefreshControlType:UITableViewRefreshControlTypeSystem]; 
          
          [tableview  setPullToRefreshModeEnable:YES beginHandler:^{
          
                // to do here when pulling to refresh
          }];
          

          关闭拉取刷新tableview

              import <HTTableKit/TableKit>
          
          ....
          
          [tableview  dismissPullToRefreshEndHandler:^{
          
                // to do here when dismissing     
          }];
          

          【讨论】:

            【解决方案8】:

            这是我们关于自定义下拉刷新控件的教程,包含用于 Objective-C 和 Swift 的代码:http://www.jackrabbitmobile.com/design/ios-custom-pull-to-refresh-control/

            如您所述,要添加其他文本或图像,请将它们添加到 self.refreshLoadingView 中的 setupRefreshControlscrollViewDidScroll 方法(来自教程)。

            如果有帮助,请告诉我!

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2020-05-20
              • 2014-07-09
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-03-30
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多