如何使用contentinset属性设置tableview的顶部,同时位于表的底部

时间:2010-05-27 13:12:20

标签: iphone cocoa-touch uitableview

我的桌面视图有20行,250行作为行高。虽然我处于桌面视图的底部,但我希望将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秒内将桌面视图插入:

[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秒内重新开始:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.3];
[self.tableView setContentInset:UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, 0.0f)];
[UIView commitAnimations];

有人可以建议怎么做吗?

提前完成。

1 个答案:

答案 0 :(得分:4)

-(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];

}