没有UITableViewController的UIRefreshControl

没有UITableViewController的UIRefreshControl

只是好奇,因为这看起来不可能,但有没有一种诡秘的方法来利用新的iOS 6UIRefreshControl不使用UITableViewController子类?

我经常使用UIViewController带着UITableView子视图和符合UITableViewDataSourceUITableViewDelegate而不是使用UITableViewController彻头彻尾的。



潇湘沐
浏览 427回答 3
3回答

当年话下

凭直觉,基于DrummerB的灵感,我尝试简单地添加一个UIRefreshControl实例作为我的UITableView..神奇地起作用了!UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];[self.myTableView addSubview:refreshControl];这增加了一个UIRefreshControl在您的表视图之上并按预期工作,而不必使用UITableViewController :)编辑:上面仍然有效,但是正如一些人所指出的,在以这种方式添加UIRefreshControl时,有一个轻微的“口吃”。解决方案之一是实例化UITableViewController,然后将UIRefreshControl和UITableView设置为此,即:UITableViewController *tableViewController = [[UITableViewController alloc] init];tableViewController.tableView = self.myTableView;self.refreshControl = [[UIRefreshControl alloc] init];[self.refreshControl addTarget:self action:@selector(getConnections) forControlEvents:UIControlEventValueChanged];tableViewController.refreshControl = self.refreshControl;

慕标琳琳

若要消除由接受的答案引起的口吃,您可以分配UITableView转到UITableViewController._tableViewController = [[UITableViewController alloc]initWithStyle:UITableViewStylePlain];[self addChildViewController:_tableViewController];_tableViewController.refreshControl = [UIRefreshControl new];[_tableViewController.refreshControl addTarget:self action:@selector(loadStream) forControlEvents:UIControlEventValueChanged];_theTableView = _tableViewController.tableView;编辑:添加UIRefreshControl没有UITableViewController没有口吃和保留良好的动画后刷新数据的表视图。UIRefreshControl *refreshControl = [UIRefreshControl new];[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];[self.theTableView addSubview:refreshControl];[self.theTableView sendSubviewToBack:refreshControl];稍后在处理刷新数据时.。- (void)handleRefresh:(UIRefreshControl *)refreshControl {     [self.theTableView reloadData];     [self.theTableView layoutIfNeeded];     [refreshControl endRefreshing];}

守候你守候我

您要尝试的是在您正在使用的ViewController中使用容器视图。您可以使用专用的表视图定义干净的UITableViewController子类,并将其放在ViewController中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS