2015-09-24 8 views
9

JSQMessagesController "Send"ボタンを文字列からUIImageViewに変更するにはどうすればよいですか?JSQMessagesControllerで送信ボタンイメージを変更する方法

は今、それは次のようになります。

enter image description here

私は、画像に "送信" これを変更することはできますか?

私が試してみた:

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

を私はそれが動作しませんでしたので、それは、間違っているもの=/

答えて

9

はUIButtonを作成し、入力されたツールバーの右バーボタンアイテムとして設定します。

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 

1

rightBarButtonItemを使用して直接設定できます。ボタンの状態を設定していないため、コードが機能しません。

self.inputToolbar?.contentView.rightBarButtonItem?.setImage(UIImage(named: "send"), for: .normal) 
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 
} 
関連する問題