UIRefreshControl不酥料饼的工作的UITableView
问题描述:
我的应用程序具有包含UITableViews 2个viewControllers。一个viewController在应用程序内部显示为自定义全屏视图,另一个显示为弹窗视图。我为两个tableView添加了一个UIRefreshControl来更新它们的内容。拖动refreshControl并刷新tableView适用于自定义全屏视图。但是,popover视图的refreshControl似乎不起作用。当我在tableView中向下拖动时,refreshControl的活动指示器会前进,但在11/12处停止(如下图所示),并且不会调用regfresh操作。UIRefreshControl不酥料饼的工作的UITableView
为酥料饼的refreshControl初始化代码是与工作refreshControl相同(除了动作的名称不同):
- (void) viewDidLoad
{
self.refreshControl = [[UIRefreshControl alloc] init];
self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString: @"Refreshing..."];
[self.refreshControl addTarget: self action: @selector(reloadTableData) forControlEvents: UIControlEventValueChanged];
[self.tableView addSubview: self.refreshControl];
}
- (void) reloadTableData
{
// reloading code. This method is not called in the popover view
}
我与这个问题有一段时间了挣扎,但没没有设法找到任何解决方案。难道把一个refreshControl放置在弹窗视图中会导致错误的行为?
任何帮助,将不胜感激。
答
在ViewController.m
设置viewDidAppear
UIRefreshControl *refreshControl = [UIRefreshControl new];
[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
[_mainTableView addSubview:refreshControl];
[_mainTableView sendSubviewToBack:refreshControl];
- (void)handleRefresh:(UIRefreshControl *)refreshControl {
//set your code here
[_mainTableView reloadData];
[_mainTableView layoutIfNeeded];
[refreshControl endRefreshing];
}
这基本上是我使用相同的代码。 refreshControl的初始化似乎不是问题,因为当我向下拖动tableView时它是可见的。此外,相同的代码在全屏视图中工作。看起来refreshControl的行为不同,因为它放置在弹出窗口视图中,至少这正是我所想的。 –