UITableView 滚动到内容大小内的部分
Posted
技术标签:
【中文标题】UITableView 滚动到内容大小内的部分【英文标题】:UITableView scroll to section within content size 【发布时间】:2012-07-03 10:03:17 【问题描述】:我有一个包含 3 个部分的表格视图,“昨天、今天、明天”。当表格视图启动时,我希望“今天”部分成为最上面的可见部分。因此我使用这个函数:
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1] atScrollPosition:UITableViewScrollPositionTop animated:NO];
当表格视图的填充超出其内容大小时,这可以正常工作,因此它是可滚动的。问题是,例如,每个部分仅包含 1 个单元格。然后整个表格将适合屏幕,因此上面的代码不会触发,因为它无论如何都会橡皮筋回来。
有人知道解决办法吗?
【问题讨论】:
认为你需要增加表格视图的内容大小才能滚动 是的。这样做的问题是您将能够滚动“太远”,并且滚动指示器无法很好地显示有多少内容...... 是的,这是正确的,但通过适当的计算,您可以调整内容大小,以便在某些条件下使用上述方法。 【参考方案1】:尝试设置表格的 edgeInsets。这将按照您指定的偏移量开始绘制表格。
UIEdgeInsets edgeInsets = UIEdgeInsetsMake(someValue, 0, 0, 0);
self.tableView.contentInset = edgeInsets;
您在哪里计算 someValue
以将表格降到您想要的位置。
【讨论】:
感谢您的回答。我已经尝试过了,它只适用于内容大于实际表格框架的表格。内容较小的表格(例如具有 3 个单元格的表格)似乎完全忽略了边缘插图。【参考方案2】:我自己回答这个问题,因为没有任何想法。
据我了解,这是不可能实现的。如果可以,表格视图将尝试滚动到该行。使其工作的唯一方法是将内容大小设置为足够大以使表格滚动。
【讨论】:
以上是关于UITableView 滚动到内容大小内的部分的主要内容,如果未能解决你的问题,请参考以下文章
动态调整UITableView的大小,该大小将显示为不可滚动的内容列表
关闭另一个视图后 UITableView 滚动内容大小不正确
显示和滚动验证错误到 UITableView 内的第 n 个 UITextfield