Как всегда фокусироваться на конкретной таблице ViewCell - PullRequest
0 голосов
/ 23 мая 2018

Я создал приложение tvOs и завис в движке фокуса.

У меня есть просмотр таблицы, и для remembersLastFocusedIndexPath установлено значение true.И я должен переопределить indexPathForPreferredFocusedView.Когда я фокусируюсь в первый раз, мне звонят indexPathForPreferredFocusedView, и я фокусируюсь на ячейке, что мне нужно.Но в другое время я получаю последний сфокусированный указатель.Когда я определяю remembersLastFocusedIndexPath как ложное, indexPathForPreferredFocusedView не вызывается.

Что мне нужно сделать, чтобы сосредоточить внимание только на ячейках, что мне нужно?

Ответы [ 2 ]

0 голосов
/ 04 августа 2018

indexPathForPreferredFocusedView вызывается только один раз, когда представление собирается получить фокус в первый раз или во время перезагрузки.

Если вы ожидаете получить какое-то другое поведение фокуса, вы можете попробовать с помощью preferredFocusEnvironments получить ваше поведение фокуса.

Кроме того, он сфокусируется на последнем IndexPath, потому что это поведение по умолчанию в tvOS.Переменная restoreFocusAfteViewTransition по умолчанию имеет значение true.Вы можете изменить это значение на false в ViewController и проверить, можете ли вы достичь того, чего хотели.

0 голосов
/ 23 мая 2018

Переопределите указанную ниже функцию и верните путь индекса, на который вы хотите сфокусироваться.

override func indexPathForPreferredFocusedView(in tableView: UITableView) -> IndexPath? {}

demo

...