如何将 JSQMessagesController“发送”按钮从 String 更改为 UIImageView?
现在看起来像:
我可以将此“发送”更改为图像吗?
我试过了:
let sendButton = JSQMessagesInputToolbar()
sendButton.contentView?.rightBarButtonItem?.imageView?.image = UIImage(named: "send.png")
但我认为这是错误的,因为它不起作用 =/
如何将 JSQMessagesController“发送”按钮从 String 更改为 UIImageView?
现在看起来像:
我可以将此“发送”更改为图像吗?
我试过了:
let sendButton = JSQMessagesInputToolbar()
sendButton.contentView?.rightBarButtonItem?.imageView?.image = UIImage(named: "send.png")
但我认为这是错误的,因为它不起作用 =/
创建一个 UIButton 并将其设置为输入工具栏的右栏按钮项。
let rightButton = UIButton(frame: CGRectZero)
let sendImage = UIImage(named: "send_button.png")
rightButton.setImage(sendImage, forState: UIControlState.Normal)
self.inputToolbar.contentView.rightBarButtonItemWidth = CGFloat(34.0)
self.inputToolbar.contentView.rightBarButtonItem = rightButton
希望有帮助!
无需创建另一个按钮,您可以重复使用现有的按钮:
override func viewDidLoad() {
super.viewDidLoad()
let imageWidth: CGFloat = 21
let image = UIImage(named: "image-name")
inputToolbar.contentView.rightBarButtonItemWidth = imageWidth
inputToolbar.contentView.rightBarButtonItem.setImage(image, for: .normal)
}
但是如果你想对按钮有更多的控制,你应该创建一个自定义的:
override func viewDidLoad() {
super.viewDidLoad()
let buttonWidth = CGFloat(40)
let buttonHeight = inputToolbar.contentView.leftBarButtonContainerView.frame.size.height
let customButton = UIButton(frame: CGRect(x: 0, y: 0, width: buttonWidth, height: buttonHeight))
customButton.backgroundColor = .red
customButton.setImage(UIImage(named: "send-message"), for: .normal)
customButton.imageView?.contentMode = .scaleAspectFit
inputToolbar.contentView.rightBarButtonItemWidth = buttonWidth
inputToolbar.contentView.rightBarButtonItem = customButton
}
可以直接使用 rightBarButtonItem 设置。您的代码不起作用,因为您没有设置按钮的状态。
self.inputToolbar?.contentView.rightBarButtonItem?.setImage(UIImage(named: "send"), for: .normal)