UITableView 不会滚动到某个位置

Posted

技术标签:

【中文标题】UITableView 不会滚动到某个位置【英文标题】:UITableView won't scroll to certain position 【发布时间】:2010-09-16 00:59:11 【问题描述】:
[self.tableView setContentOffset:CGPointMake(0,48) animated:NO];

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

有人知道怎么回事吗?

【问题讨论】:

【参考方案1】:

要设置节标题的 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;

为我工作,希望对其他人也如此。

【讨论】:

【参考方案2】:

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


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

这将使 tableView 从 yPos 48 开始。

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

希望对你有帮助....

【讨论】:

self.tableView 不会响应 scrollRectToVisible 抱歉误解了您的问题。我很好奇 self.tableView.contenOffset = CGPointMake(0,48) 是否有效。

以上是关于UITableView 不会滚动到某个位置的主要内容,如果未能解决你的问题,请参考以下文章

UItableView滚动到特定位置

滚动/调整 UITableView

UITableView 滚动非常大的单元格

UITableView 滚动到错误的位置

将 superView 拖到某个阈值后启用滚动 UITableView

UICollectionView 没有滚动到位置