我有一个包含3个部分的表视图,“昨天,今天,明天”。当表视图启动时,我希望“今天”部分是最可见的部分。因此我使用此功能:
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1] atScrollPosition:UITableViewScrollPositionTop animated:NO];
当表视图填充超出其内容大小时,这可以正常工作,因此它可以滚动。问题是例如每个部分仅包含1个单元格。然后整个表格将适合屏幕,因此上面的代码不会被激活,因为无论如何它都会回弹。
任何人都知道解决方案吗?
答案 0 :(得分:1)
尝试设置表格的edgeInsets。这将按您指定的偏移量开始绘制表格。
UIEdgeInsets edgeInsets = UIEdgeInsetsMake(someValue, 0, 0, 0);
self.tableView.contentInset = edgeInsets;
您计算someValue
以将表格缩小到您想要的位置。
答案 1 :(得分:1)
我自己回答这个问题,因为实际上没有任何想法。
从我的理解,这是不可能实现的。如果可以,表视图将尝试滚动到该行。使其工作的唯一方法是将内容大小设置为足以使表滚动。