在 JSQMessagesViewController 中覆盖 JSQMessagesInputToolbar
Override JSQMessagesInputToolbar in JSQMessagesViewController
按下按钮时,我想在现有的 JSQMessagesInputToolbar 新视图上显示带有用于取消的计时器和滑块。
我找到的解决方案之一是覆盖 xib 文件,但是
项目中的所有 UI 都是用 Objective C 编写的,所以没有我可以覆盖的 xib 文件。
能否请您建议替代的编程解决方案来实现它?
谢谢
//MARK:- Input Toolbar Initialization
private func initRightToolBarView() -> Void {
micButton = UIButton(frame: inputButtonFrame)
micButton.setImage(CHAT_MIC_BUTTON,for:UIControlState())
micButton.addTarget(self, action: #selector(startRecording), for: .touchDown)
micButton.addTarget(self, action: #selector(endRecording), for: .touchUpInside)
micButton.addTarget(self, action: #selector(cancelRecording), for: .touchDragExit)
inputToolbar.contentView!.rightBarButtonContainerView!.addSubview(micButton)
let timerLabelFrame = inputToolbar.contentView!.textView!.frame
timerLabel = UILabel(frame: timerLabelFrame)
timerLabel.text = "00:00"
timerLabel.textAlignment = .center
timerLabel.isHidden=true
inputToolbar.contentView!.addSubview(timerLabel)
}
现在当用户开始录制时
inputToolbar.contentView!.textView!.isHidden = true
timerLabel.isHidden=false
录制结束时
inputToolbar.contentView!.textView!.isHidden = false
timerLabel.isHidden=true
按下按钮时,我想在现有的 JSQMessagesInputToolbar 新视图上显示带有用于取消的计时器和滑块。
我找到的解决方案之一是覆盖 xib 文件,但是 项目中的所有 UI 都是用 Objective C 编写的,所以没有我可以覆盖的 xib 文件。
能否请您建议替代的编程解决方案来实现它?
谢谢
//MARK:- Input Toolbar Initialization
private func initRightToolBarView() -> Void {
micButton = UIButton(frame: inputButtonFrame)
micButton.setImage(CHAT_MIC_BUTTON,for:UIControlState())
micButton.addTarget(self, action: #selector(startRecording), for: .touchDown)
micButton.addTarget(self, action: #selector(endRecording), for: .touchUpInside)
micButton.addTarget(self, action: #selector(cancelRecording), for: .touchDragExit)
inputToolbar.contentView!.rightBarButtonContainerView!.addSubview(micButton)
let timerLabelFrame = inputToolbar.contentView!.textView!.frame
timerLabel = UILabel(frame: timerLabelFrame)
timerLabel.text = "00:00"
timerLabel.textAlignment = .center
timerLabel.isHidden=true
inputToolbar.contentView!.addSubview(timerLabel)
}
现在当用户开始录制时
inputToolbar.contentView!.textView!.isHidden = true
timerLabel.isHidden=false
录制结束时
inputToolbar.contentView!.textView!.isHidden = false
timerLabel.isHidden=true