如果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