2015-09-24 13 views
9

Come posso modificare il pulsante "Invia" JSQMessagesController solo da String a UIImageView?Come modificare l'immagine del pulsante Invia in JSQMessagesController

ora sembra:

enter image description here

Posso cambiare questo "Send" per l'immagine?

ho provato:

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

ma io cosa è sbagliato, perché non ha funzionato =/

risposta

9

Creare un UIButton e impostarlo come la barra a destra tasto voce di barra degli strumenti di input.

var rightButton = UIButton(frame: CGRectZero) 
var sendImage = UIImage(named: "send_button.png") 
rightButton.setImage(sendImage, forState: UIControlState.Normal) 

self.inputToolbar.contentView.rightBarButtonItemWidth = CGFloat(34.0) 

self.inputToolbar.contentView.rightBarButtonItem = rightButton 

Spero che ti aiuti!

1

Può essere impostato direttamente utilizzando il parametro RightBarButtonItem. Il tuo codice non funziona perché non stai impostando lo stato del pulsante.

self.inputToolbar?.contentView.rightBarButtonItem?.setImage(UIImage(named: "send"), for: .normal) 
3

Non c'è bisogno di creare un altro pulsante, è possibile riutilizzare l'esistente:

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) 

    } 

Ma se si vuole avere un maggiore controllo del pulsante, è necessario creare uno personalizzato:

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 
} 
Problemi correlati