Сделайте так, чтобы строка просмотра таблицы tvOS оставалась в фиксированном положении при прокрутке

Я хочу воспроизвести поведение прокрутки приложения tvOS от Netflix с помощью UITableView.

При прокрутке элементов приложения на Netflix фокусированная строка и следующая строка всегда находятся в одинаковом положении.

При поведении по умолчанию UITableView положение фокусированной строки отличается в зависимости от строки.

Как я мог этого добиться?

1 ответ

Решение

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;
}
Другие вопросы по тегам