如果tableview包含少于10个左右的单元格,你会如何强制UITableViewCell滚动到顶部?我支持在tableview单元格内编辑托管对象上下文,而tableview处于编辑模式。不用说,如果一个单元格位于tableview的底部,当用户去编辑事件的标题或位置时,它会被键盘阻塞。我尝试了一个解决方案,如:强制UITableView滚动到顶部?
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:NO];
if(_selectedIndex == indexPath.row){
_selectedIndex = -1;
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
return;
}
if(_selectedIndex >= 0){
NSIndexPath *previous = [NSIndexPath indexPathForRow:_selectedIndex inSection:0];
_selectedIndex = indexPath.row;
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:previous]
withRowAnimation:UITableViewRowAnimationFade];
}
_selectedIndex = indexPath.row;
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
[tableView setContentOffset:CGPointMake(0, [tableView rowHeight]*indexPath.row) animated:YES];
}
但是,这不保留在contentOffset tableview。它会捕捉到顶部,然后回弹
做我刚落在源代码tableview.h和.m文件到我现有的项目?我没有使用UITableViewController,只有一个UITableView – HighFlyingFantasy
,我没有使用.xib或故事板......所有事情都是在一个视图控制器(支持幻灯片左/右动画)中使用自足的子视图 – HighFlyingFantasy
只需抓住TPKeyboardAvoidingTableView.m/.h文件并将您的UITableView实例设置为该实例。你不需要有一个xib或一个UITableViewController。或者,你可以将你需要的代码从你的代码中提取出来并放到你的视图控制器中,而不是继承它的子类。如果由于某种原因,这不是一个合适的解决方案,我会尽力帮助你。 – Dima