Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在第一个表格单元格中滚动到中间_Ios_Objective C_Uitableview_Swift - Fatal编程技术网

Ios 在第一个表格单元格中滚动到中间

Ios 在第一个表格单元格中滚动到中间,ios,objective-c,uitableview,swift,Ios,Objective C,Uitableview,Swift,我有一个自定义单元格的UITableView。这些单元格的高度恒定为200。我想设置第一个单元格的滚动动画。这可以使用ScrollToRowatineXpath。但是,该行显示在视图的顶部,而我希望它在可见的tableView中显示为死点。我尝试将tableView的contentInset属性设置为一组不同的值,但似乎没有一个提供正确的偏移量。有什么建议吗?UITableView实际上有一个简洁的方法: - (void)scrollToRowAtIndexPath:(NSIndexPath *

我有一个自定义单元格的UITableView。这些单元格的高度恒定为200。我想设置第一个单元格的滚动动画。这可以使用
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。这是预期的行为,因为上面没有单元格,滚动视图从第一个单元格开始,不能再向上滚动。为了达到你想要的效果,你必须使用插图,见我对这个问题的评论。