В моем приложении я использую управление обновлением с представлением коллекции.
UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:[UIScreen mainScreen].bounds];
collectionView.alwaysBounceVertical = YES;
...
[self.view addSubview:collectionView];
UIRefreshControl *refreshControl = [UIRefreshControl new];
[collectionView addSubview:refreshControl];
iOS7 имеет некоторую неприятную ошибку: когда вы вытягиваете снимок коллекции и не отпускаете палец, когда начинается освежение, вертикальный contentOffset
сдвиг на 20-30 пунктов вниз, что приводит к уродливому прокрутку.
У таблиц есть эта проблема, если вы используете их с контролем обновления вне UITableViewController
. Но для них это можно было бы легко решить, присвоив вашему экземпляру UIRefreshControl
частному свойству UITableView
_refreshControl
:
@interface UITableView ()
- (void)_setRefreshControl:(UIRefreshControl *)refreshControl;
@end
...
UITableView *tableView = [[UITableView alloc] initWithFrame:[UIScreen mainScreen].bounds];
[self.view addSubview:tableView];
UIRefreshControl *refreshControl = [UIRefreshControl new];
[tableView addSubview:refreshControl];
[tableView _setRefreshControl:refreshControl];
Но UICollectionView
не имеет такого свойства, поэтому должен быть какой-то способ справиться с ним вручную.