直接在导航栏下方滚动表格视图单元格?
Posted
技术标签:
【中文标题】直接在导航栏下方滚动表格视图单元格?【英文标题】:Scroll tableview cell directly beneath the navigation bar? 【发布时间】:2014-12-13 17:18:05 【问题描述】:我有一个表格视图。点击时,一个单元格会展开为一个表单,我希望该单元格向上滚动以在导航栏下方开始。我如何做到这一点?
这里是开始状态:
目前,点击后:
这就是我想要的:
【问题讨论】:
【参考方案1】:你需要这样的东西:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
// Perform cell change height code here
// ...
// After that scroll to this cell
CGFloat sectionHeaderHeight = [self tableView:tableView heightForHeaderInSection:indexPath.section];
CGRect cellFrame = [tableView rectForRowAtIndexPath:indexPath];
[tableView setContentOffset:CGPointMake(0, cellFrame.origin.y - sectionHeaderHeight) animated:YES];
【讨论】:
是的,就像 Vitaly 所说,您需要这样的解决方案。 -setContentOffset 部分至关重要。 这种方法可行,但是要将末尾的单元格带到顶部,您需要添加一个 contentInset,您可能希望在完成单元格位于顶部后将其删除。 @StefanKendall 你说得对,有两种方法可以实现这一点 - 如你所说,添加底部内容插入,或者检查表格内容大小末尾的单元格框架并适当地纠正内容偏移【参考方案2】:scrollToRowAtIndexPath...
或scrollToNearestSelectedRow...
都采用“滚动位置”参数,允许选择转到表格视图的顶部、中间或底部。那应该给你你想要的。
【讨论】:
scrollToRow 将单元格放在导航栏下方。 哦,即使调整了滚动视图上的插图?当您不调整单元格大小时,它会这样做吗?听起来像一个错误。以上是关于直接在导航栏下方滚动表格视图单元格?的主要内容,如果未能解决你的问题,请参考以下文章
从带有搜索栏的表格单元格创建模式视图时,无法在导航栏中创建后退按钮
带有自定义 UITextView 单元格的 TableView 将导航栏滚动到屏幕外