ユーザがUIViewを押すと、アニメーションを使ってすべてのサブビューを表示または非表示にするという意味で、youtubeと非常によく似たインターフェースを設定します。UIButtonアルファを変更するとタップが認識されない
func setupControlViewVisiblity(playingVideo: Bool = false, duration: TimeInterval = 1.0, isExpanded: Bool = false){
var alpha:CGFloat = 1
if isShowingControls {
//If we're showing then we're about to hide everything so alpha is 0
alpha = 0
}
UIView.animate(withDuration: duration, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: {
self.pausePlayButton.alpha = alpha
self.backButton.alpha = alpha
self.infoLabel.alpha = alpha
self.fullScreenButton.alpha = alpha
self.currentTimeLabel.alpha = alpha
self.videoLengthLabel.alpha = alpha
self.videoSlider.alpha = alpha
}, completion:nil)
isShowingControls = !isShowingControls
}
私がいる問題は(isShowingControlsが真である)私は、このメソッドを呼び出すと、私はコントロールを表示すると、私のUIButtonsは最初のタップを認識しないということです。これは文字通り、ビューのアルファベットが0から1に変わったときにのみ発生し、ボタンをタップしようとします。
メインキューでアニメーションを実行しようとしましたが動作しません。アルファを0から1に変更する場合は、数秒待ってからボタンをタップします。 UIButtonsアルファが変更された直後にどうすればいいですか?
おかげ
編集:私はそれは私が0.2にそれを切り替えたときに、それが動作するため、アニメーションの再生時間に関係していると思います。私はそれを少し高く保ち、これを機能させるにはどうすればいいですか?