2017-07-03 2 views
0

Ich habe einen lokalen Video-Player implementiert, der sowohl den Vollbild- als auch den Vollbildmodus unterstützt, mit einer Umschalttaste im Vollbildmodus in der unteren rechten Ecke des videoPlayerView. Ich habe eine Unteransicht namens controlsContainerView hinzugefügt, um die Play/Pause-Taste, den Schieberegler, die zwei Beschriftungen und die Umschalttaste für den Vollbild-Bildschirm einzuschließen. Ich habe auch einen tapGesture Recognizer hinzugefügt, um eine tippende Geste auf die videoPlayerView zu bekommen, um mit dem Wetter fertig zu werden oder die controlsContainerView sollte nicht angezeigt werden. Hier kommt meine Frage:Swift - ControlContainerView verschwindet von VideoPlayerView, wenn Vollbild

Im Vollbildmodus funktioniert alles einwandfrei. Wenn Sie auf die Schaltfläche "Vollbild umschalten" klicken, dreht sich der videoPlayerView um 90 Grad und wird auf Vollbild erweitert, während das Video abgespielt wird. Die Controls Containeransicht verschwand jedoch, egal ob ich auf den Bildschirm tippe oder nicht. Ich drucke den isHidden-Status der controlsContainerView und es ändert sich zwischen "true" und "false", was es sollte. Die Rahmengröße und -position ist auch gut. Aber es zeigt sich nicht visuell.

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) 

} 

Vielen Dank für das Lesen meiner Frage und hoffe, dass Sie mir ein paar Einblicke bekommen können!

Antwort

0

Sorry, ich war dumm. Ich habe die controlsContainerView manuell entfernt, weshalb sie nicht angezeigt wurde.

Verwandte Themen