Ios 在第一个表格单元格中滚动到中间
我有一个自定义单元格的UITableView。这些单元格的高度恒定为200。我想设置第一个单元格的滚动动画。这可以使用Ios 在第一个表格单元格中滚动到中间,ios,objective-c,uitableview,swift,Ios,Objective C,Uitableview,Swift,我有一个自定义单元格的UITableView。这些单元格的高度恒定为200。我想设置第一个单元格的滚动动画。这可以使用ScrollToRowatineXpath。但是,该行显示在视图的顶部,而我希望它在可见的tableView中显示为死点。我尝试将tableView的contentInset属性设置为一组不同的值,但似乎没有一个提供正确的偏移量。有什么建议吗?UITableView实际上有一个简洁的方法: - (void)scrollToRowAtIndexPath:(NSIndexPath *
ScrollToRowatineXpath
。但是,该行显示在视图的顶部,而我希望它在可见的tableView中显示为死点。我尝试将tableView的contentInset
属性设置为一组不同的值,但似乎没有一个提供正确的偏移量。有什么建议吗?UITableView实际上有一个简洁的方法:
- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath
atScrollPosition:(UITableViewScrollPosition)scrollPosition
animated:(BOOL)animated
您可以使用它将tableView滚动到单元格位于tableView中心的位置,如下所示:
[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:TRUE];
我能找到的唯一方法是使用scrollRectToVisible
而不是ScrollToRowatineXpath
。无论出于何种原因(可能是因为禁用了在我的桌子上滚动),即使使用@Emil的建议,将scrollToRowAtIndexPath
与contentInset
组合,定位仍处于关闭状态
这项工作:
tableView.contentInset = UIEdgeInsets(top: cellHeight, left: 0, bottom: cellHeight, right: 0)
tableView.scrollRectToVisible(CGRectMake(0, 0 - tableView.contentSize.height, cellWidth, tableView.contentSize.height), animated: false)
您的contentInset将是tableview的高度除以2减去我认为的tableview单元格高度的一半。“你试过了吗?”埃米尔,我不知道你的意思。contentInset属于UIEdgeInsets类型,因此它采用top、bottom、left和right值。谢谢你的帮助。是的,那么顶部的插图将是tableView高度的一半减去单元格高度的一半。这不起作用。滚动到第0行的索引会将该单元格置于顶部,即使我指定了ScrollPositionMiddle。这是预期的行为,因为上面没有单元格,滚动视图从第一个单元格开始,不能再向上滚动。为了达到你想要的效果,你必须使用插图,见我对这个问题的评论。