2017-08-15 14 views
0

UIButtonの変更イメージをAからBに、またBからAを押すたびに、どのようにすることができますか?UIButtonの画像を押すたびに変更する方法

.normal~.highlightedとは異なり、永続的です。他の回答からザビエルL.へsetBackgroundImageの言及のため

func ChangeButton() { 
    Button.setImage(A, for: .normal) 
    Button.setImage(B, for: .highlighted) 
+0

これまでに何を試しましたか? – mat

+0

永続的なコードが見つからないため、ハイライトされたメソッドを試しました。コードは次のとおりです。 func ChangeButton(){ Button.setImage(A、for:.normal) Button.setImage(B、for :。ハイライト) – Shahin

+0

ここをクリックしてください:https://stackoverflow.com/questions/44938919/how-do-i-change-an-image-if-i-click-on-a-button-in-swift/44939698# 44939698 –

答えて

1

ありがとう: 私は永久のコードを見つけることができないので、私は.highlighted方法を試してみた、ここに私のコードです。

import UIKit 
class ViewController: UIViewController { 

    @IBOutlet var button: UIButton! 
    var buttonActive = false 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     button.setBackgroundImage(UIImage(named: "apple"), for: .normal) 
    } 

    @IBAction func buttonPressed() { 
     if buttonActive { 
      button.setBackgroundImage(UIImage(named: "apple"), for: .normal) 
     } else { 
      button.setBackgroundImage(UIImage(named: "pineapple"), for: .normal) 
     } 
     buttonActive = !buttonActive 
    } 
} 

そして、あなたのストーリーボードは、そのようになります。: Storyboard

N.B. 次のコードを試してみてくださいスタックオーバフローでは、いくつかのアクションを尋ねる前に実行する必要があります。試したコードをいくつか含めるようにしてください。

+0

それは働いた、ありがとう – Shahin

0

backgroundImageが自動的に拡大縮小され、前面のボタンテキストが覆われないため、backgroundImageを変更することをおすすめします。

それはその初期化子内、カスタムボタンの場合:

self.addTarget(self, action: #selector(*yourfunctoswitchimages*), for: .touchUpInside) 

...そしてyourfunctoswitchimagesはちょうど現在の背景画像が何であるかをチェックし、それに応じて切り替えることが可能となります。


カスタムボタンでない場合は、viewDidLoadなどでターゲットを追加します。ここにはたくさんのサンプルコードがあります。あなたのviewDidLoad()で

yourButt.addTarget(self, action: #selector(switcheroo), for: .touchUpInside) 

あなたのビューコントローラのもう一つのFUNC:

func switcheroo() 
{ 
    if yourButt.currentBackgroundImage == image1 
    { 
     yourButt.setBackgroundImage(image2), for: .normal) 
    } 
    else { // ...set image to image1 } 
} 

yourButtはもちろん、あなたのビューコントローラのプロパティ、それはのviewDidLoadにアクセス可能なその方法(だろう)とその中の他の機能につながります。

関連する問題