2017-07-03 11 views
0

videoPlayerViewの右下にトグルフルスクリーンボタンがある非フルスクリーンモードとフルスクリーンモードの両方をサポートするローカルビデオプレーヤーを実装しました。 controlsContainerViewというサブビューを追加して、再生/一時停止ボタン、スライダ、2つのラベル、トグルフルスクリーンボタンを追加しました。また、天気を処理するためにvideoPlayerViewでユーザのタップジェスチャを取得するtapGestureレコグナイザを追加しましたが、controlsContainerViewは表示されません。ここに私の質問が来る:フルスクリーンのときにVideoPlayerViewからSwift - ControlContainerViewが消える

完全なものではない、すべてが完全に動作します。トータルフルスクリーンボタンをクリックすると、ビデオ再生中にvideoPlayerViewが90度回転してフルスクリーンに拡大します。しかし、私が画面をタップしても、コントロールのコンテナビューは消えました。私はcontrolsContainerViewのisHiddenステータスを出力し、 "true"と "false"の間で変更します。フレームのサイズと位置も良いです。しかし、視覚的には現れません。

func handleFullScreen() { 
    controlsContainerView.removeFromSuperview() 
    if isFullScreen { 
     fullScreenBtn.setImage(UIImage(named: "full_screen"), for: .normal) 
     UIView.animate(withDuration: 3, animations: { 
      let width = UIApplication.shared.keyWindow?.frame.width 
      let height = width!*9/16 
      self.transform = CGAffineTransform(rotationAngle: 0) 
      self.frame = CGRect(x: 0, y: 0, width: width!, height: height) 
     }) 
    } else { 
     fullScreenBtn.setImage(UIImage(named: "full_screen_exit"), for: .normal) 
     UIView.animate(withDuration: 3, animations: { 

      self.transform = CGAffineTransform(rotationAngle: CGFloat.pi/2) 
      self.frame = UIScreen.main.bounds 
      self.controlsContainerView.frame = self.bounds 
      self.playerLayer.frame = self.bounds 
     }) 

    } 
    isFullScreen = !isFullScreen 
} 

func handleControlsContainerViewHide() { 
    print("Tapped") 
    if controlsContainerViewIsHidden { 
     controlsContainerView.isHidden = false 
    } else { 
     controlsContainerView.isHidden = true 
    } 
    controlsContainerViewIsHidden = !controlsContainerViewIsHidden 
    print(controlsContainerView.isHidden) 
} 

func setupVideoControlView() { 
    //setupGradientLayer() 

    self.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleControlsContainerViewHide))) 
    controlsContainerView.frame = bounds 

    addSubview(controlsContainerView) 
// Sub views of controls container view, I deleted the layout constraints since they are irrelevant to this question. 

    controlsContainerView.addSubview(activityIndicatorView) 

    controlsContainerView.addSubview(pausePlayBtn) 

    controlsContainerView.addSubview(fullScreenBtn) 

    controlsContainerView.addSubview(videoLengthLabel) 

    controlsContainerView.addSubview(currentTimeLabel) 

    controlsContainerView.addSubview(videoSlider) 

    controlsContainerView.addSubview(closeBtn) 

} 

私の質問を読んでくれてありがとうとは、あなたが私にいくつかの洞察を得ることができます願っています!

答えて

0

申し訳ありませんが、私は馬鹿でした。私は手動でcontrolsContainerViewを手動で削除しましたが、これは表示されませんでした。

関連する問題