UITableView不会滚动到某个位置

时间:2010-09-16 00:59:11

标签: iphone objective-c uiview uitableview

[self.tableView setContentOffset:CGPointMake(0,48) animated:NO];

我有一个UITableView,标题中有一个UIView。我的UITableView不会滚动到(0,48),除非动画:是。我不希望它有动画。

任何人都知道什么了?

2 个答案:

答案 0 :(得分:2)

您可以尝试名为 -scrollRectToVisible:animated 的方法。


我误解了你的问题。那么,你想要的是用y坐标移动大约48像素来初始化tableview?

这将使tableView从yPos 48开始。

tableView.contentInset = UIEdgeInsetsMake(48, 0.0, 0.0, 0.0);

希望这可以帮助你......

答案 1 :(得分:2)

要为节标题设置UIView,您使用的是函数:

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section; 

我怀疑你在viewWillAppear中的某处调用了setContentOffset,但稍后会调用该函数。我认为它会覆盖你的contentOffset。 ...不确定为什么它在动画为YES时不会,但无论如何,只需将你的setContentOffset放入这个函数中就像这样:

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{
    UIView *headerView = nil;
    if (section == SEC_WITH_IMAGE_HEADER) {
        headerView = self.neededView;
    }   
    [self.tableView setContentOffset:CGPointMake(0,48) animated:NO];
    return headerView;
}

为我工作,希望其他人也能这样做。