| | |
| | | class StudyHandleView: UIView,JQNibView{ |
| | | @IBOutlet weak var view_container: UIView! |
| | | @IBOutlet weak var btn_choose: UIButton! |
| | | @IBOutlet weak var view_choose: UIView! |
| | | @IBOutlet weak var btn_state: UIButton! |
| | | @IBOutlet weak var btn_voice: UIButton! |
| | | @IBOutlet weak var btn_pay: UIButton! |
| | | @IBOutlet weak var view_choose: UIView! |
| | | @IBOutlet weak var btn_state: UIButton! |
| | | @IBOutlet weak var btn_voice: UIButton! |
| | | @IBOutlet weak var btn_pay: UIButton! |
| | | |
| | | var listenType:ListenType? |
| | | private var clouse:((UIButton)->Void)? |
| | | private var playComplete:(()->Void)? |
| | | private var playAtClouse:((Int)->Void)? |
| | | var listenType:ListenType? |
| | | private var clouse:((UIButton)->Void)? |
| | | private var playComplete:(()->Void)? |
| | | private var playAtClouse:((Int)->Void)? |
| | | |
| | | var voicePlayer = VoicePlayer.share() |
| | | var vioceSoundUrl:String? |
| | | var voicePlayer = VoicePlayer.share() |
| | | var vioceSoundUrl:String? |
| | | var isplayend:Bool = false |
| | | |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | btn_state.alpha = 0 |
| | | view_choose.alpha = 0 |
| | | override func awakeFromNib() { |
| | | super.awakeFromNib() |
| | | btn_state.alpha = 0 |
| | | view_choose.alpha = 0 |
| | | alpha = 0 |
| | | |
| | | btn_voice.setImage(UIImage(named: "icon_play_1"), for: .normal) |
| | |
| | | |
| | | btn_choose.setImage(UIImage(named: "btn_radio_u"), for: .normal) |
| | | btn_choose.setImage(UIImage(named: "btn_radio"), for: .selected) |
| | | } |
| | | } |
| | | |
| | | func chooseClouse(callback:@escaping (UIButton)->Void){ |
| | | clouse = callback |
| | | } |
| | | func chooseClouse(callback:@escaping (UIButton)->Void){ |
| | | clouse = callback |
| | | } |
| | | |
| | | func playAt(_ clouse:@escaping(Int)->Void){ |
| | | self.playAtClouse = clouse |
| | | } |
| | | func playAt(_ clouse:@escaping(Int)->Void){ |
| | | self.playAtClouse = clouse |
| | | } |
| | | |
| | | func copyView()->StudyHandleView{ |
| | | let copyV = StudyHandleView.jq_loadNibView() |
| | | copyV.bounds = self.bounds |
| | | copyV.tag = self.tag |
| | | copyV.vioceSoundUrl = self.vioceSoundUrl |
| | | return copyV |
| | | } |
| | | func copyView()->StudyHandleView{ |
| | | let copyV = StudyHandleView.jq_loadNibView() |
| | | copyV.bounds = self.bounds |
| | | copyV.tag = self.tag |
| | | copyV.vioceSoundUrl = self.vioceSoundUrl |
| | | return copyV |
| | | } |
| | | |
| | | func resetView(){ |
| | | switch listenType { |
| | | case .lesson1,.lesson5,.game1: |
| | | UIView.animate(withDuration: 0.25) { |
| | | self.btn_state.setImage(UIImage(named: "icon_play"), for: .normal) |
| | | self.btn_voice.alpha = 1 |
| | | self.btn_pay.alpha = 1 |
| | | self.btn_state.alpha = 0 |
| | | } |
| | | case .lesson2: |
| | | UIView.animate(withDuration: 0.25) { |
| | | self.btn_state.setImage(UIImage(named: "icon_play"), for: .normal) |
| | | self.btn_voice.alpha = 1 |
| | | self.btn_pay.alpha = 1 |
| | | self.btn_state.alpha = 0 |
| | | self.view_choose.alpha = 1 |
| | | } |
| | | default:break |
| | | } |
| | | } |
| | | func resetView(){ |
| | | switch listenType { |
| | | case .lesson1,.lesson5,.game1: |
| | | UIView.animate(withDuration: 0.25) { |
| | | self.btn_state.setImage(UIImage(named: "icon_play"), for: .normal) |
| | | self.btn_voice.alpha = 1 |
| | | self.btn_pay.alpha = 1 |
| | | self.btn_state.alpha = 0 |
| | | } |
| | | case .lesson2: |
| | | UIView.animate(withDuration: 0.25) { |
| | | self.btn_state.setImage(UIImage(named: "icon_play"), for: .normal) |
| | | self.btn_voice.alpha = 1 |
| | | self.btn_pay.alpha = 1 |
| | | self.btn_state.alpha = 0 |
| | | self.view_choose.alpha = 1 |
| | | } |
| | | default:break |
| | | } |
| | | } |
| | | |
| | | func isplaying(){ |
| | | func isplaying(){ |
| | | isplayend = true |
| | | alpha = 1 |
| | | switch listenType { |
| | | case .lesson1,.lesson5,.game1: |
| | | UIView.animate(withDuration: 0.25) { |
| | | self.btn_state.setImage(UIImage(named: "icon_playing")?.themeGreen, for: .normal) |
| | | self.btn_voice.alpha = 0 |
| | | self.btn_pay.alpha = 0 |
| | | self.btn_state.alpha = 1 |
| | | } |
| | | break |
| | | case .lesson2: |
| | | UIView.animate(withDuration: 0.25) { |
| | | self.btn_state.setImage(UIImage(named: "icon_playing")?.themeGreen, for: .normal) |
| | | self.btn_voice.alpha = 0 |
| | | self.btn_pay.alpha = 0 |
| | | self.btn_state.alpha = 1 |
| | | self.view_choose.alpha = 1 |
| | | } |
| | | switch listenType { |
| | | case .lesson1,.lesson5,.game1: |
| | | UIView.animate(withDuration: 0.25) { |
| | | self.btn_state.setImage(UIImage(named: "icon_playing")?.themeGreen, for: .normal) |
| | | self.btn_voice.alpha = 0 |
| | | self.btn_pay.alpha = 0 |
| | | self.btn_state.alpha = 1 |
| | | } |
| | | break |
| | | case .lesson2: |
| | | UIView.animate(withDuration: 0.25) { |
| | | self.btn_state.setImage(UIImage(named: "icon_playing")?.themeGreen, for: .normal) |
| | | self.btn_voice.alpha = 0 |
| | | self.btn_pay.alpha = 0 |
| | | self.btn_state.alpha = 1 |
| | | self.view_choose.alpha = 1 |
| | | } |
| | | |
| | | default:break |
| | | } |
| | | } |
| | | default:break |
| | | } |
| | | } |
| | | |
| | | @IBAction func payAction(_ sender: UIButton) { |
| | | guard let v = vioceSoundUrl else {return} |
| | | voicePlayer.playerAt(url: v) |
| | | playAtClouse?(self.tag) |
| | | isplaying() |
| | | @IBAction func payAction(_ sender: UIButton) { |
| | | guard let v = vioceSoundUrl else {return} |
| | | voicePlayer.playerAt(url: v) |
| | | voicePlayer.playerAt(url: v) {[weak self] in |
| | | self?.resetView() |
| | | } |
| | | playAtClouse?(self.tag) |
| | | isplaying() |
| | | |
| | | } |
| | | } |
| | | |
| | | @IBAction func chooseAction(_ sender: UIButton) { |
| | | sender.isSelected = !sender.isSelected |
| | | clouse?(sender) |
| | | } |
| | | @IBAction func chooseAction(_ sender: UIButton) { |
| | | sender.isSelected = !sender.isSelected |
| | | clouse?(sender) |
| | | } |
| | | } |