【问题标题】:UIRefreshControl sticks up at top of tableUIRefreshControl 位于表格顶部
【发布时间】:2013-03-12 12:13:58
【问题描述】:

我在UITableviewController 中使用UIRefreshControl。表格第一次加载来自互联网的数据时,它会自动显示在顶部。见下图。

这就是我设置刷新控件的方式

[self.refreshControl addTarget:self action:@selector(doRefresh:) forControlEvents:UIControlEventValueChanged];
- (void)doRefresh:(CKRefreshControl *)sender {
    NSLog(@"Refreshing Parent");
    // bring Data Here
}

这一切都发生在下拉刷新之前。第一次填充简单表数据时,会显示刷新控件,而不是隐藏在导航栏下。 谁能告诉我为什么会这样?

【问题讨论】:

  • 请编辑您的问题以包含您的代码以创建和使用UIRefreshControl
  • UITableViewController 是用 xib 文件制作的,所以我只是在 ValueChnaged 方法上为 UIRefreshControl 设置了一个操作方法。我也在 XIb 中启用了刷新。
  • 在调用方法时发布一些代码
  • 这一切都发生在下拉刷新之前。第一次填充简单表格数据时,会显示刷新控件,而不是隐藏在导航栏下。

标签: iphone ios objective-c uitableview


【解决方案1】:

尝试分配一个新的 UIRefreshControl 对象并将 self.refreshControl 设置为它。类似的东西:

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl setAttributedTitle:[[NSAttributedString alloc] initWithString:@"Refreshing.."]];
[refreshControl addTarget:self action:@selector(doSomething:) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refreshControl;

希望对你有帮助。

编辑:您还应该在调用选择器的末尾使用 [self.refreshControl endRefreshing]。

【讨论】:

  • 为什么?当我已经从 UITableviewController 获得 refreshControl 时?
  • @AbidHussain 因为在初始化控制器时未分配来自 UITableViewController 的 refreshControl。您必须分配和初始化新的 UIRefreshControl 并将其分配给 UITableViewController 属性。编辑:你是对的,你可以直接分配它而不创建对象-> self.refreshControl = [[UIRefreshControl alloc] init]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 2022-08-14
  • 1970-01-01
  • 1970-01-01
  • 2020-06-27
相关资源
最近更新 更多