Сделайте так, чтобы строка просмотра таблицы 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;
}