iOS
UIRefreshControl TableView
Поиск…
Вступление
Объект UIRefreshControl предоставляет стандартный элемент управления, который можно использовать для инициирования обновления содержимого табличного представления. Вы связываете элемент управления обновлением с таблицей через связанный с ним объект контроллера табличного представления. Контроллер табличного представления обрабатывает работу по добавлению элемента управления в визуальный внешний вид таблицы и управление отображением этого элемента управления в ответ на соответствующие жесты пользователя.
Пример Objective-C
Сначала объявите свойство, подобное этому в ViewController
@property (nonatomic) UIRefreshControl *refreshControl;
Позже в viewDidLoad()
настройте refreshControl, как показано ниже:
self.refreshControl = [[UIRefreshControl alloc]init];
[self.tableView addSubview:self.refreshControl];
[self.refreshControl addTarget:self action:@selector(refreshTable) forControlEvents:UIControlEventValueChanged];
//Setting the tint Color of the Activity Animation
self.refreshControl.tintColor = [UIColor redColor];
//Setting the attributed String to the text
NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:@"firstsecondthird"];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,5)];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(5,6)];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(11,5)];
self.refreshControl.attributedTitle = string;
Теперь функция refreshTable
определяется как:
- (void)refreshTable {
//TODO: refresh your data
[self.refreshControl endRefreshing];
[self.refreshControl beginRefreshing];
[self.tableView reloadData];
[self.refreshControl endRefreshing];
}
Настроить refreshControl на tableView:
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(pullToRefresh:) forControlEvents:UIControlEventValueChanged];
self.scrollView.alwaysBounceVertical = YES;
[self.scrollView addSubview:refreshControl];
- (void)pullToRefresh:(UIRefreshControl*) sender{
//Do work off the main thread
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Simulate network traffic (sleep for 2 seconds)
[NSThread sleepForTimeInterval:2];
//Update data
//Call complete on the main thread
dispatch_sync(dispatch_get_main_queue(), ^{
//Update network activity UI
NSLog(@"COMPLETE");
[sender endRefreshing];
});
});
}
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow