Iphone 如何设置tableview';在位于表底部时,使用contentinset属性返回顶部

Iphone 如何设置tableview';在位于表底部时,使用contentinset属性返回顶部,iphone,cocoa-touch,uitableview,Iphone,Cocoa Touch,Uitableview,我有一个20行和250行的桌面视图。当我在tableview的底部时,我想将tableview向上移动65px。我试过了 self.tableView.contentInset=UIEdgeInsetsMake(-65.0f,0.0f,0.0f,0.0f) 也 self.tableView.contentInset=UIEdgeInsetsMake(4633.0f-65.0f)、0.0f、0.0f、0.0f) 其中4633.0f是我的contentoffset.y,但没有成功 当最后一个单元格向

我有一个20行和250行的桌面视图。当我在tableview的底部时,我想将tableview向上移动65px。我试过了

self.tableView.contentInset=UIEdgeInsetsMake(-65.0f,0.0f,0.0f,0.0f)

self.tableView.contentInset=UIEdgeInsetsMake(4633.0f-65.0f)、0.0f、0.0f、0.0f)

其中4633.0f是我的contentoffset.y,但没有成功

当最后一个单元格向上拉时,我会在最后一个单元格下方显示一个视图,上面有一个活动指示器,用来描述加载了更多的数据。我需要使该视图保持可见3秒钟,以便我想向上推tableview单元格,然后我想将tableview恢复到其原始位置,并在该位置下重置视图

我正在这么做

编辑:此“在2秒钟内将tableview插入:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2];
// self.tableView.contentInset = UIEdgeInsetsMake((4633.0f - 65.0f), 0.0f, 0.0f, 0.0f);
self.tableView.contentInset = UIEdgeInsetsMake(- 65.0f, 0.0f, 0.0f, 0.0f);  //I want to know what should be written here
[UIView commitAnimations];
然后调用函数将其重置为

这将在3秒钟内使tableview插图恢复原状:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.3];
[self.tableView setContentInset:UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, 0.0f)];
[UIView commitAnimations];
有人能建议怎么做吗


Thanx。相反,您可以设置表格视图框架。你不能这样做吗?不,我只是想把显示的contentinset向后推一点,然后再次以动画方式将其重置到原来的位置。如果我设置了tableview框架,contentinset会发生更改,我不想这样做。哦,好的,展示一下你是怎么做的。请检查我编辑的问题。发布答案。检查并回复我。现在我退出gn:)您可以设置表视图框架。你不能这样做吗?不,我只是想把显示的contentinset向后推一点,然后再次以动画方式将其重置到原来的位置。如果我设置了tableview框架,contentinset会发生更改,我不想这样做。哦,好的,展示一下你是怎么做的。请检查我编辑的问题。发布答案。检查并回复我。现在我退出gn:)嗨,Manjunath,非常感谢你的帮助,但我只想设置tableview的contentinset,使单元格上升约65像素。我想在UIEdgeInsetsMake中为“顶部”设置数字。我对tableview的顶部应用了相同的代码,这样当第一个单元格被拉下时,我会在其上方显示一个视图,通过执行self.tableview.contentInset=UIEdgeInsetsMake(60.0f,0.0f,0.0f,0.0f)使其保持在60。这里我可以直接设置为60,但是对于最后一个单元格之后的视图,我不知道要传递什么值:tableview偏移的y坐标/screen的y坐标。嗨,Manjunath,非常感谢你的帮助,但我只想设置tableview的contentinset,使单元格上升约65像素。我想在UIEdgeInsetsMake中为“顶部”设置数字。我对tableview的顶部应用了相同的代码,这样当第一个单元格被拉下时,我会在其上方显示一个视图,通过执行self.tableview.contentInset=UIEdgeInsetsMake(60.0f,0.0f,0.0f,0.0f)使其保持在60。这里我可以直接设置为60,但是对于最后一个单元格之后的视图,我不知道要传递什么值:tableview偏移的y坐标/screen的y坐标。
-(void)yourMethod
{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
    [UIView setAnimationDuration:0.2];
    tableView.contentInset = UIEdgeInsetsMake(0, 0, 60, 0);
    [UIView commitAnimations];

}

-(void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
{
 [[self tableView] scrollToRowAtIndexPath:[[self tableView] indexPathForSelectedRow]
       atScrollPosition:UITableViewScrollPositionBottom
         animated:YES];

}