Niv*_*666 43 objective-c uitableview ios
我正试图在我的表视图中获得iOS 7上的pull to refresh功能.在我viewDidLoad,我有:
refreshControl = [[UIRefreshControl alloc] init];
[self.mytableView setContentOffset:CGPointMake(0, refreshControl.frame.size.height) animated:YES];
[refreshControl beginRefreshing];
[refreshControl addTarget:self action:@selector(refreshTable) forControlEvents:UIControlEventValueChanged];
Run Code Online (Sandbox Code Playgroud)
然后我跑:
-(void)refreshTable {
[self.mytableView reloadData];
[refreshControl endRefreshing];
}
Run Code Online (Sandbox Code Playgroud)
在iOS 6上,这意味着当你向下拉动表格视图时,它会显示在你拉动时伸展的圆形箭头,并且在拉得足够远之后,它会刷新.现在,我看不到圆形箭头.我错过了什么?
Yas*_* T. 169
您不必显式设置框架或启动UIRefreshControl.如果它是一个 UITableView或UICollectionView它,它应该像一个魅力本身.你确实需要阻止它.
以下是您的代码应如下所示:
- (void)viewDidLoad {
[super viewDidLoad];
refreshControl = [[UIRefreshControl alloc]init];
[refreshControl addTarget:self action:@selector(refreshTable) forControlEvents:UIControlEventValueChanged];
if (@available(iOS 10.0, *)) {
self.mytableView.refreshControl = refreshControl;
} else {
[self.mytableView addSubview:refreshControl];
}
}
Run Code Online (Sandbox Code Playgroud)
在您的refreshTable功能中,您需要在刷新数据后停止它.以下是它的样子:
- (void)refreshTable {
//TODO: refresh your data
[refreshControl endRefreshing];
[self.mytableView reloadData];
}
Run Code Online (Sandbox Code Playgroud)
请注意,如果要异步刷新数据,则需要移动endRefreshing并reloadData调用完成处理程序.
您忘记将附加UIRefreshControl到表格视图中.
改变你viewDidLoad的
refreshControl = [[UIRefreshControl alloc]init];
[refreshControl addTarget:self action:@selector(refreshTable) forControlEvents:UIControlEventValueChanged];
[self setRefreshControl:refreshControl];
Run Code Online (Sandbox Code Playgroud)
PS您的视图控制器应该是子类UITableViewController.
| 归档时间: |
|
| 查看次数: |
64580 次 |
| 最近记录: |