我在自己构建的 RPN 计算器中做了类似的事情。我有一个包含所有数字的表格视图,当一个数字添加到堆栈中时,所有内容都会弹出一个单元格。当我加载视图时,我调用:
[self.myTableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:NumOfStackItems - 1 inSection:0]
atScrollPosition:UITableViewScrollPositionTop animated:NO];
在我看来会出现。这样,我的表格视图开始显示在堆栈的底部,并且看不到任何动画。通过将它放在 viewWillAppear 中,每次我导航到视图时,它都会显示在表格的底部。
当我将数字添加到堆栈中时,我只是将它添加到一个包含所有数字的数组中,然后将文本放在正确的行中,如下所示:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Cell initialization here...
NSUInteger row_num = [indexPath row];
cell.rowNumber.text = [NSString stringWithFormat:@"%g", [DataArray objectAtIndex:NumberOfStackItems-row_num-1];// subtract the row number off to get the correct array index
return cell
}
我还确保每当我用新值更新 tableview 时,我首先调用 reloadData 函数,然后调用上面引用的 scrollToRowAtIndexPath 函数,这样我就留在了表的底部。