2016-11-15 3 views
1

iOS 9.0 앱에서 pod 'Player'을 사용하면 비디오를 재생할 수 있습니다. 나는 창을 닫기위한 UIButton 오버레이를 추가하기 위해 Player 클래스를 하위 클래스 화했습니다.버튼 컨트롤이 Swifty`Player` 패키지보기 컨트롤러의 탭에 응답하지 않습니다.

도청되면 잘 보이고 애니메이션이 강조 표시되지만 내부를 만지면 closeTapped이 호출되지 않습니다.

import UIKit 
import Player 

class PlayerViewController: Player, PlayerDelegate { 

    func install() { 
     view.frame = presentor.view.bounds 
     presentor.addChildViewController(self) 
     presentor.view.addSubview(view) 
     didMove(toParentViewController: presentor) 

     let closeImage = UIImage(named: "close")! 
     let closeButton = UIButton(type: .custom) 
     view.addSubview(closeButton) 
     closeButton.setImage(closeImage, for: .normal) 
     closeButton.autoPinEdge(toSuperviewEdge: .top, withInset: 25) 
     closeButton.autoPinEdge(toSuperviewEdge: .right, withInset: 15) 
     closeButton.autoSetDimensions(to: CGSize(width: 50, height: 50)) 
     closeButton.addGestureRecognizer(UITapGestureRecognizer()) 

     closeButton.addTarget(self, action: #selector(closeTapped), for: .touchUpInside) 
    } 

    func closeTapped() { 
     logger.debug("Player close tapped") 
    } 
} 

나는 또한 closeTapped(sender: Any?)을 가지려고했지만 도움이되지 않았습니다.

closeTapped은 왜 호출되지 않습니까?

+0

시도하십시오 closeButton.addTarget (self, action : #selector (PlayerViewController.closeTapped (_ :) for : .touchUpInside) 및 closeTapped (_ 보낸 사람 : AnyObject) – Idan

답변

1

버튼에 TapGestureRecognizer를 추가 할 필요가 없습니다. 스위프트 3.0의 경우 다음과 같이 할 수 있습니다.

button.addTarget(self, action: #selector(closeTapped(sender:)), for: .touchUpInside) 

func closeTapped(sender: UIButton) { 
} 
+0

죄송합니다.이 TapGestureRecognizer는 남은 것입니다. 그게 제거 됐어야 했어! 고마워. – Kof

0

버튼 상단에 UITapGestureRecognizer()가 추가 된 것 같습니다. #selector가있는 자체입니다. 따라서 귀하의 버튼 기본. 터치 업 내부 컨트롤러가 호출하지 않습니다.

//closeButton.addGestureRecognizer (UITapGestureRecognizer())

이 줄을 주석으로

보십시오.

내가 도움이되는지 아닌지 알려주세요.