2016-10-13 53 views
2

我正在創建一個tvOS電影瀏覽器。該視圖保存電影描述並顯示4件事物:電影封面圖片,電影描述文本,觀看按鈕以及電影演員陣列(藍色框)的集合視圖。 preferredFocusView被設置爲watchButton。但是,一旦我將焦點切換到它下面的集合視圖,如果演員太短,我無法再將注意力集中在觀看按鈕上。按鈕不可聚焦,因爲它是遙不可及的 - tvOS Swift

The watch button is focusable here since the cast extends to just below the button

The watch button IS NOT focusable here

最終,我知道,這樣的手錶按鈕直接在第一劇組成員上面我可以通過重新排列UI修復它,但我想知道是否有一個實際的方式實現我原來的目標。

謝謝!

回答

0

爲了解決這個問題,我在視圖控制器中添加了一個焦點指南。

private var focusGuide: UIFocusGuide! 

在viewDidLoad中:

// Create focus guide 
focusGuide = UIFocusGuide() 
view.addLayoutGuide(focusGuide) 

focusGuide.leftAnchor.constraint(equalTo: header.imageView.leftAnchor).isActive = true 
focusGuide.bottomAnchor.constraint(equalTo: header.imageView.bottomAnchor).isActive = true 
focusGuide.widthAnchor.constraint(equalTo: header.imageView.widthAnchor).isActive = true 
focusGuide.heightAnchor.constraint(equalTo: header.watchButton.heightAnchor).isActive = true