嘗試添加UIFocusGuide正上方的按鈕的行。在這種情況下,在到達按鈕之前,它會打到您的重點指南,您可以將preferredFocusedView重定向到該特定按鈕。要重定向的代碼是通過重寫didUpdateFocusInContext方法來完成的。
假設你有設置在viewDidLoad中的焦點引導,以下是一個示例,
override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) {
super.didUpdateFocusInContext(context, withAnimationCoordinator: coordinator)
self.focusGuide.preferredFocusedView = self.mypreferredbutton
}
初始化的聚焦引導(做加法引導的,以查看在viewDidLoad中)
var focusGuide = UIFocusGuide()
self.view.addLayoutGuide(self.sidefocusGuide)
self.focusGuide.leftAnchor.constraintEqualToAnchor(self.placerLabel.leftAnchor).active = true
self.focusGuide.rightAnchor.constraintEqualToAnchor(self.placerLabel.rightAnchor).active = true
self.focusGuide.topAnchor.constraintEqualToAnchor(self.audioTable.topAnchor).active = true
我也面臨類似的問題,但不知何故能夠通過這個做到這一點。 preferredFocusedView方法也可以工作,但是你必須通過更新一些引用變量然後爲該視圖調用setneedsfocusupdate來做很多馬戲團。嘗試重點指南的方式。希望能幫助到你。
編輯: 我已經添加了代碼如何設置指南。在這種情況下,我已將指南放在了我的觀點的右側。因此,無論何時您的焦點碰到指南,它都會重定向到您希望焦點轉到didUpdateFocusInContext中的首選focusocus視圖。 「任何時候都只有一個焦點。」,請記住那些?所以,當它碰到指南的那一刻,重寫方法就會被擊中,從而將你的焦點轉移到指南的首選視圖。例如,你可以參考蘋果的UIKitCatlog應用程序的tvOS和這是一個link解釋相同。
感謝您的答覆巴蒂爾:我試圖通過引導將優先重點的看法,但它並沒有幫助。我沒有使用過很多的指南,我是tvOS的新手,你能不能分享一下創建指南的想法,就像你在案例中那樣擊中第一個按鈕? –
再次通過我的答案。已經添加和編輯了一些更多的參考。 –
謝謝謝恩 - 我經歷了教程,它真的幫助。所以如果我們想要像這樣做任何自定義導航,我們需要添加一個焦點指南,並根據didupdateFocus委託方法的要求重定向。 –