我有一个基本的UITableView,其中包含一个UI,可以说是n个单元格。 (可视化相对较薄的细胞,大约4合一iPhone5屏幕)
我的目标是当用户点击一个单元格时,它会扩展到整个屏幕的高度,并且tableview会变成分页。
以下是我通过代码执行此操作的地方: 注意:整个内容都是动画。
void (^tableBlock)(void) = ^{
int bonus = 10;
int diff = self.chooser.frame.origin.y - self.invitesTable.frame.origin.y+bonus;
[self.invitesTable setFrame:CGRectMake(self.invitesTable.frame.origin.x, self.chooser.frame.origin.y+bonus, self.invitesTable.frame.size.width, self.invitesTable.frame.size.height-diff)];
CGAffineTransform moveTable = CGAffineTransformMakeTranslation(0, diff);
[tableView scrollToRowAtIndexPath:indexPath
atScrollPosition:UITableViewScrollPositionTop animated:YES];
};
void (^tableCompletionBlock)(BOOL) = ^(BOOL finished)
{
[tableView deselectRowAtIndexPath:indexPath animated:TRUE];
BOOL isSelected = ![self cellIsSelected:indexPath];
NSNumber *selectedIndex = [NSNumber numberWithBool:isSelected];
[self.selectedIndexes setObject:selectedIndex forKey:indexPath];
[UIView animateWithDuration:0.3 animations:^{
[tableView beginUpdates];
[tableView endUpdates];
} completion:^(BOOL finished){
[tableView scrollToRowAtIndexPath:indexPath
atScrollPosition:UITableViewScrollPositionTop animated:YES];
[tableView setPagingEnabled:YES];
}];
};
[UIView animateWithDuration:0.3 animations:tableBlock completion:tableCompletionBlock];
我在启用分页后面临一个问题,如果我已经扩展了除第一个单元格之外的任何单元格,则会导致tableview自动向下滚动1个前一个tableview单元格的近似高度。
启用分页后,如何停止此副作用。
经过调试,我注意到它与UITableView更新无关,即使只是删除它们,也就是简单地通过启用滚动错误仍然存在。