2017-05-24 4 views
0

私はこのスタイルを持つボタンのために行くしようとしている:ボタンを押すと色が逆になりますか?

enter image description here

は、ここで私がこれまで持っているものです。

otherbuttons

しかし、私は取得する方法がわかりませんよボタンの右の色は、例の中ボタンのように押されています。

button.setImage(UIImage("Image_White_Version"), for: .highlighted) 

しかし、私は色で、ボタンの残りの部分を埋める方法を知らない:私は、画像の色は、使用して白くしてもらうことができました。誰も助けてくれますか?

+0

「ハイライトされた」状態の 'backgroundImage'も変更する必要があります。 – Sulthan

答えて

1

あなたはこのような特定の状態のためにUIButtonの背景画像を設定することができます。ここでは

let image = UIImage.imageWithColor(someColor, size: CGSize(width: 1.0, height: 1.0)) 
btn.setBackgroundImage(image, for: .highlighted) 

は(UIImageの拡張子の内側に置く)色から画像を作成するための機能である:

extension UIImage { 
    class func imageWithColor(_ color: UIColor, size: CGSize) -> UIImage { 
     let rect = CGRect(x: 0.0, y: 0.0, width: size.width, height: size.height) 
     UIGraphicsBeginImageContext(rect.size) 
     let context = UIGraphicsGetCurrentContext() 
     context!.setFillColor(color.cgColor) 
     context!.fill(rect) 
     let image = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
     return image! 
    } 
} 
+0

また、 'UIButton'の代わりに' UIControl'を使うこともできます。イメージの 'tint'とハイライト表示された' backgroundColor'を変更するだけです。 – Sulthan

+0

'Type 'UIImage'にはメンバー 'imageWithColor''がありません – MarksCode

+0

いいえ、私の回答に投稿した内線番号を追加する必要があります。 – bughana

0

は、次のアプローチを使用してみてください:

それがこれをachiveする方法高速な方法です。主なアイデアは、ボタンの背景色と画像の色合いの色を使用します。しかし、UIControlベースで新しいカスタムコントロールを準備することをお勧めします。もしそれが駄目なら、私はあなたのためにそれを準備します。

+0

あなたのポストにコードフォーマットブロックにないコードがあります – KaraBenNemsi

+0

ええ(これを解決しようとしています – ObranS

関連する問題