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 不会滚动到某个位置的主要内容,如果未能解决你的问题,请参考以下文章