【问题标题】:UITableView scroll to section within content sizeUITableView 滚动到内容大小内的部分
【发布时间】:2012-07-03 10:03:17
【问题描述】:

我有一个包含 3 个部分的表格视图,“昨天、今天、明天”。当表格视图启动时,我希望“今天”部分成为最上面的可见部分。因此我使用这个函数:

[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1] atScrollPosition:UITableViewScrollPositionTop animated:NO];

当表格视图的填充超出其内容大小时,这可以正常工作,因此它是可滚动的。问题是,例如,每个部分仅包含 1 个单元格。然后整个表格将适合屏幕,因此上面的代码不会触发,因为它无论如何都会橡皮筋回来。

有人知道解决办法吗?

【问题讨论】:

  • 认为你需要增加表格视图的内容大小才能滚动
  • 是的。这样做的问题是您将能够滚动“太远”,并且滚动指示器无法很好地显示有多少内容......
  • 是的,这是正确的,但通过适当的计算,您可以调整内容大小,以便在某些条件下使用上述方法。

标签: ios ipad uitableview uiscrollview


【解决方案1】:

尝试设置表格的 edgeInsets。这将按照您指定的偏移量开始绘制表格。

UIEdgeInsets edgeInsets = UIEdgeInsetsMake(someValue, 0, 0, 0);
self.tableView.contentInset = edgeInsets;

您在哪里计算 someValue 以将表格降到您想要的位置。

【讨论】:

  • 感谢您的回答。我已经尝试过了,它只适用于内容大于实际表格框架的表格。内容较小的表格(例如具有 3 个单元格的表格)似乎完全忽略了边缘插图。
【解决方案2】:

我自己回答这个问题,因为没有任何想法。

据我了解,这是不可能实现的。如果可以,表格视图将尝试滚动到该行。使其工作的唯一方法是将内容大小设置为足够大以使表格滚动。

【讨论】:

    猜你喜欢
    • 2019-07-18
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 2018-04-29
    • 1970-01-01
    相关资源
    最近更新 更多