У меня возникли проблемы с перетаскиванием справа, чтобы переместить фокус с UITableView на UIButton, который находится справа и ниже таблицы. Я настроил UIFocusGuide, и я считаю, что у меня правильная геометрия. (См. Прикрепленный снимок экрана, созданный с помощью Pod VisualFocusGuide.)Проведите от UITableView до UIButton через UIFocusGuide не работает
Когда я использую встроенный QuickLook в UIFocusUpdateContext, он показывает только фокус просмотра таблицы (выделенная строка в одном цвете и другие строки другого цвета) , но это может быть потому, что в табличном представлении я могу только сосредоточиться, поэтому, возможно, этот контекст ограничен таблицей.
Я видел рекомендацию elsewhere, чтобы связать направляющую фокусировки с кнопкой, а не с видом контроллера, но это не сработало. Из отчаяния я также попытался связать фокус-гид с табличным обзором, но все равно не повезло.
Вот уместные методы. Любой свет, который может пролить, будет оценен! Благодаря!
override func viewDidLoad() {
super.viewDidLoad()
self.view.addLayoutGuide(focusGuide)
self.focusGuide.widthAnchor.constraint(equalTo: self.infoButton.widthAnchor).isActive = true
self.focusGuide.heightAnchor.constraint(equalTo: self.tableView.heightAnchor).isActive = true
self.focusGuide.topAnchor.constraint(equalTo: self.tableView.topAnchor).isActive = true
self.focusGuide.leftAnchor.constraint(equalTo: self.infoButton.leftAnchor).isActive = true
self.focusGuide.preferredFocusEnvironments = [self.infoButton]
}
override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {
super.didUpdateFocus(in: context, with: coordinator)
guard let nextFocusedView = context.nextFocusedView else { return }
// When the focus engine focuses on the focus guide, we can programmatically tell it which element should be focused next.
switch nextFocusedView {
case self.tableView:
self.focusGuide.preferredFocusEnvironments = [self.infoButton]
case self.infoButton:
self.focusGuide.preferredFocusEnvironments = [self.tableView]
default:
self.focusGuide.preferredFocusEnvironments = []
}
}