滚动

时间:2017-03-01 11:18:10

标签: uitableview position row tvos vertical-scrolling

我希望使用UITableView重现Netflix的tvOS应用程序的滚动行为。

当您在Netflix上滚动应用程序的项目时,焦点行和即将到来的行始终处于相同位置。

根据UITableView的默认行为,焦点行的位置因行而异。

我怎么能实现这个目标?

1 个答案:

答案 0 :(得分:0)

UIScrollViewDelegate方法scrollViewWillEndDragging:withVelocity:targetContentOffset:将允许您控制焦点引擎在滚动视图上设置的内容偏移:如果您调整targetContentOffset参数指向的值,则焦点引擎会在那里滚动。

所以你应该实现那个方法,并使用你喜欢的任何方法来计算正确的偏移应该是什么,然后在指针中设置值:

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
    CGPoint defaultOffset = *targetContentOffset;
    CGPoint newOffset = myFunctionThatAdjustsTheOffset(defaultOffset);
    *targetContentOffset = newOffset;
}