非表示のフッターを作成し、そこで計算を行うことで修正できます。フッターが読み込まれると、contentSize が更新されます。スクロールするには、テーブルビューの contentOffset の設定を確認します。
アニメーションの部分はコメントアウトしましたが、コメントアウトしなくてもよかったのですが、それでも機能します。
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 1;
}
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
if( tableView.contentOffset.y != tableView.contentSize.height - tableView.frame.size.height && automaticScroll ){
//[UIView animateWithDuration:0.0 animations:^{
self.contentTableView.contentOffset = CGPointMake(0, tableView.contentSize.height - self.contentTableView.frame.size.height);
//} completion:^(BOOL finished) {
[tableView reloadData];
//}];
automaticScroll = NO;
}
UIView *emptyFooter = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)];
emptyFooter.backgroundColor = [UIColor clearColor];
return emptyFooter;
}
下へのスクロールをトリガーする BOOL automaticScroll を作成しました。これは、viewWillAppear メソッドで設定するか、データをロードして tableView をリロードするたびに設定する必要があります。
行を追加する場合は、次のように BOOL も設定する必要があります。
-(void)addItemButtonClicked:(id)sender
{
automaticScroll = YES;
//Add object to data
[self.contentTableView reloadData];
}
さらにサポートが必要な場合は、お知らせください。