2015-09-24 13 views
9

Jak mogę zmienić przycisk "Wyślij" JSQMessagesController z właśnie String na UIImageView?Jak zmienić obraz przycisku Wyślij w JSQMessagesController

Teraz to wygląda:

enter image description here

Mogę to zmienić "Wyślij" na obrazie?

Próbowałem:

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

ale rzeczą jest to błędne, ponieważ nie działa =/

Odpowiedz

9

Załóż UIButton i ustawić go jako elementu prawym pasku przycisków paska narzędzi wejściowego.

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 

Nadzieję, że pomaga!

1

Można ustawić bezpośrednio za pomocą rightBarButtonItem. Twój kod nie działa, ponieważ nie ustawiasz stanu przycisku.

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

Nie potrzeba stworzenia innego przycisku, można ponownie wykorzystać istniejący:

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) 

    } 

Ale jeśli chcesz mieć większą kontrolę przycisku, należy utworzyć niestandardową:

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 
} 
Powiązane problemy