2015-10-20 25 views
1

嘗試在聚焦(tvOS)時將動作添加到UIButton。聚焦時將動作添加到UIButton(swift)

我使用

override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) { 
     super.didUpdateFocusInContext(context, withAnimationCoordinator: coordinator) 

然後:

if self.button1.focused == true { 
    //do something 
    } 

    if self.button2.focused == true { 
    //do something else 
    } 

這是最好的辦法還是我會惹上麻煩?

編輯:

在您看來,這是正確的或者是有沒有更好的方法?

override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) { 
      super.didUpdateFocusInContext(context, withAnimationCoordinator: coordinator) 
      coordinator.addCoordinatedAnimations({() -> Void in 

       var previewPlayer = AVPlayer() 
       let previewPlayerLayer = AVPlayerLayer(player: previewPlayer) 

       previewPlayerLayer.frame = CGRectMake(self.view.frame.size.width/2-128, self.view.frame.size.height/2-254, 254, 128) 
       previewPlayer.volume = 0 

       if self.button1.focused == true { 

        let videoURL = NSURL(string: "someString")! 
        previewPlayer = AVPlayer(URL: videoURL) 

       } 

       if self.button2.focused == true { 

        let videoURL = NSURL(string: "someOtherString")! 
        previewPlayer = AVPlayer(URL: videoURL) 

       } 


        previewPlayer.play() 


       }) {() -> Void in 

      } 
     } 

回答

0

可以知道,當一個視圖是由以下兩種方式之一聚焦:

//returns bool whether view is focused 
someview.focused 

//returns focused view, can return nil 
UIScreen.mainScreen().focusedView 

這些方法中的任何是正確的,不會讓你陷入困境;)

+0

感謝。看起來,如果我添加了一個子圖層,如果沒有被分解,就會被刪除。不知道爲什麼... –