У меня есть табличное представление, содержащее сообщения пользователей. У каждого поста есть картинка, имя пользователя и сам пост. Действие элемента управления обновлением заключается в перезагрузке таблицы данными из Parse. Все работает отлично, за исключением сильной задержки, когда я дергаю, чтобы обновить. Не знаю, из-за картинок в каждой ячейке или из-за чего-то еще. Если у кого-то есть идеи, почему это произошло, пожалуйста, дайте мне знать. Код выложу, если кому надо.
-(void)viewDidLoad {
refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(retrieveFromParse) forControlEvents:UIControlEventValueChanged];
refreshControl.backgroundColor = [UIColor whiteColor];
refreshControl.tintColor = [UIColor colorWithRed:0.3878 green:0.5686 blue:1.0 alpha:0.9];
[userPostsTable addSubview:refreshControl];
}
-(void) retrieveFromParse {
PFQuery *quoteQuery = [PFQuery queryWithClassName:@"Quotes"];
quoteQuery.cachePolicy = kPFCachePolicyCacheThenNetwork;
[quoteQuery orderByDescending:@"createdAt"];
[quoteQuery getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) {
if (!error) {
NSString *category = [object objectForKey:@"Category"];
if (category == nil) {
quoteLabel.font = [UIFont fontWithName:@"Helvetica Neue Light Italic" size:15];
}
else {
quoteLabel.font = [UIFont fontWithName:@"Helvetica Neue" size:15];
}
quoteString = [object objectForKey:@"quoteContent"];
quoteLabel.text = quoteString;
quoteIdString = object.objectId;
[refreshControl endRefreshing];
}
else {
[refreshControl endRefreshing];
}
}];
PFQuery *userPostsQuery = [PFQuery queryWithClassName:@"userPosts"];
userPostsQuery.cachePolicy = kPFCachePolicyCacheThenNetwork;
[userPostsQuery setLimit:300];
[userPostsQuery whereKey:@"quoteObjectId" matchesKey:@"objectId" inQuery:quoteQuery];
if (segmentedControl.selectedSegmentIndex == 0) {
[userPostsQuery orderByDescending:@"createdAt"];
}
else {
[userPostsQuery orderByDescending:@"likeCount"];
}
[userPostsQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
userPostsArray = [[NSArray alloc] initWithArray:objects];
[userPostsTable reloadData];
[refreshControl endRefreshing];
}
else {
[refreshControl endRefreshing];
}
}];
}