テーブルビューに含まれるセルが10個程度未満の場合、UITableViewCellを強制的に一番上にスクロールするにはどうすればよいですか?tableviewが編集モードのときに、tableViewセル内の管理対象オブジェクトコンテキストの編集をサポートします。言うまでもなく、セルがテーブルビューの下部にある場合、ユーザーがイベントのタイトルまたは場所を編集しようとすると、そのセルはキーボードによってブロックされます。私は次のような解決策を試しました:
-(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に保持しません。上部にスナップしてから元に戻ります