2017-09-07 5 views
0

私のVCコードはthis.hereのように見えます。showClick関数は、ボタンをタップした関数です。このボタンをクリックします。音楽プレーヤーであるxibファイルをロードします。新しいxibファイルが読み込まれるたびに、なぜ前のファイルが置き換えられないのですか?

// 
// PlayerTestOneVC.swift 
// rapapediaPlayer 
// 
// Created by rumy hasan on 9/3/17. 
// Copyright © 2017 rumyhasan. All rights reserved. 
// 

import UIKit 
import Jukebox 


var viewOne = UIView() 
var viewTow = UIView() 
var playerMainView: UIView? 
var viewOfAll: UIView? 

class PlayerTestOneVC: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 
    } 


    @IBAction func showClick(_ sender: Any) { 
     if let keywindow = UIApplication.shared.keyWindow{ 
      if var viewtag = keywindow.viewWithTag(50){ 
       viewtag.removeFromSuperview() 

      } 
      if let player = Bundle.main.loadNibNamed("Player", owner: self, options: nil)?.first as? Player{ 
       viewOne = player.viewOne 
       viewTow = player.viewTow 
       //player.bellowBtn.addTarget(self, action: #selector(change), for: .touchUpInside) 
       //playerMainView = player 

       player.ppBtnOut.isHidden = true 

       player.frame = keywindow.frame 
       playerMainView = player 
       viewOfAll = player 
       viewOfAll?.tag = 50 
       playerMainView = player 
       keywindow.addSubview(viewOfAll!) 

      } 


     } 
    } 



} 

My xibファイルは次のようになります。ビューの下にクリックした後

enter image description here

この

enter image description here

ようにそれが正常に動作し、大丈夫に見えると私は再びショー]ボタンをクリックした場合、それは、上に新しいビューを作成し、今の曲を再生するが、既存のビューと両方のプレーヤーが自分のオーディオを再生し、私は同時にトウを聞くことができますが、私は新しいものと最初のものを交換する必要があります。私はそれを行うことはできますか?

以下のmy xibファイルは、ボタンタップコードはこちらです。

@IBAction func belowClick(_ sender: Any) { 
    if dropDown{ 
     UIView.animate(withDuration: 0.5, delay: 0, options: .curveEaseOut, animations: { 

      viewOfAll?.frame = (UIApplication.shared.keyWindow?.frame)! 
     }, completion: { (completedAnimation) in 

     }) 

    }else{ 
     UIView.animate(withDuration: 0.5, animations: { 
      viewOfAll?.frame = self.viewOne.frame 
      viewOfAll?.frame = CGRect(x: 0 , y: (UIApplication.shared.keyWindow?.frame.height)! - 70, width: (UIApplication.shared.keyWindow?.frame.width)!, height: 70) 
     }) 

    } 
    dropDown = !dropDown 
} 

答えて

0

私はそれが必要としてあなたplayer開始は、他のスレッドでオーディオファイルを再生すると思います。表示ボタンをクリックするたびに、前にplayerを停止せずに新しいplayerを作成します。以前のオーディオファイルと新しいオーディオファイルを一緒に再生し続けているため、ビューを削除するのはviewtag.removeFromSuperview()です。

私は、stop関数を作成し、ビューを削除する前に呼び出すことができると思います。

+0

でも、私がここをクリックすると、私は少し前にそれを見ることができます。 – Rumy

関連する問題