不同 Y 级别的 UIButton 无法在 tvOS 上聚焦
UIButton on different Y level can't be focused on tvOS
我开始为 Apple TV 开发应用程序,但我遇到了按钮问题。我有一个屏幕,屏幕底部有几个按钮,然后有一个在中间(请参阅屏幕截图以了解)。问题是我无法集中于中间按钮。焦点仅在底部的三个按钮上。问题显然是由 Y 位置引起的,当我移动屏幕底部的按钮时,它会获得焦点。
按钮是在情节提要中创建的,ViewController中没有代码。故事板中中间按钮的设置与底部按钮的设置相同。我必须在代码中手动处理吗?还是有可能像这样进行焦点移动?如果有任何信息,我将不胜感激。
我还在用模拟器开发。
所以我在苹果的指导下找到了解决方案。它需要使用 UIFocusGuide 进行一些编码。 Apple 对此有 sample code。
添加焦点指南以填补缺失space。
let focusGuide = UIFocusGuide()
view.addLayoutGuide(focusGuide)
focusGuide.widthAnchor.constraintEqualToAnchor(buttonThatIsFocused.widthAnchor).active = true
focusGuide.leftAnchor.constraintEqualToAnchor(buttonThatIsFocused.leftAnchor).active = true
focusGuide.heightAnchor.constraintEqualToAnchor(buttonTryingToFocus).active = true
focusGuide.preferredFocusedView = buttonTryingToFocus
我开始为 Apple TV 开发应用程序,但我遇到了按钮问题。我有一个屏幕,屏幕底部有几个按钮,然后有一个在中间(请参阅屏幕截图以了解)。问题是我无法集中于中间按钮。焦点仅在底部的三个按钮上。问题显然是由 Y 位置引起的,当我移动屏幕底部的按钮时,它会获得焦点。
按钮是在情节提要中创建的,ViewController中没有代码。故事板中中间按钮的设置与底部按钮的设置相同。我必须在代码中手动处理吗?还是有可能像这样进行焦点移动?如果有任何信息,我将不胜感激。
我还在用模拟器开发。
所以我在苹果的指导下找到了解决方案。它需要使用 UIFocusGuide 进行一些编码。 Apple 对此有 sample code。
添加焦点指南以填补缺失space。
let focusGuide = UIFocusGuide()
view.addLayoutGuide(focusGuide)
focusGuide.widthAnchor.constraintEqualToAnchor(buttonThatIsFocused.widthAnchor).active = true
focusGuide.leftAnchor.constraintEqualToAnchor(buttonThatIsFocused.leftAnchor).active = true
focusGuide.heightAnchor.constraintEqualToAnchor(buttonTryingToFocus).active = true
focusGuide.preferredFocusedView = buttonTryingToFocus