如何在JSQMessagesController

时间:2015-09-24 06:58:46

标签: ios swift jsqmessagesviewcontroller

如何更改JSQMessagesController"发送"从String到UIImageView的按钮?

现在看起来像:

enter image description here

我可以更改此内容吗?#34;发送"想象?

我试过了:

let sendButton = JSQMessagesInputToolbar()
sendButton.contentView?.rightBarButtonItem?.imageView?.image = UIImage(named: "send.png")

但我觉得它错了,因为它不起作用= /

3 个答案:

答案 0 :(得分:10)

创建一个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

希望有所帮助!

答案 1 :(得分:3)

无需创建其他按钮,您可以重复使用现有按钮:

  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 
}

答案 2 :(得分:1)

可以使用rightBarButtonItem直接设置。您的代码无效,因为您没有设置按钮的状态。

character(n)