我有一个带自定义单元格的UITableView。单元格的高度恒定为200.我想为第一个单元格的滚动设置动画。这可以使用scrollToRowAtIndexPath
。但是,该行显示在视图的顶部,而我希望它在可见的tableView中显示为死点。我尝试将tableView的contentInset
属性设置为一堆不同的值,但似乎都没有提供正确的偏移量。有什么建议吗?
答案 0 :(得分:2)
UITableView
实际上有一个简洁的方法:
- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath
atScrollPosition:(UITableViewScrollPosition)scrollPosition
animated:(BOOL)animated
您可以使用它将tableView滚动到单元格位于tableView中心的位置,如下所示:
[tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:TRUE];
答案 1 :(得分:0)
我能找到的唯一方法是使用scrollRectToVisible
代替scrollToRowAtIndexPath
。无论出于何种原因(可能因为我的桌子上的滚动被禁用),即使使用@ 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)