web-dev-qa-db-ja.com

ボタン画像をすばやく変更するにはどうすればよいですか?

ボタンのあるアプリを開発しています。ボタンにはテキスト、画像、背景はありません。

だから私がしたいのは、それにviewDidLoad関数で画像を与えることです。

これは私が持っているものです:

@IBOutlet var tapButton: UIButton!

override func viewDidLoad() {

    super.viewDidLoad()

    tapButton.setImage("redTap.png", forState: UIControlState.Normal)
}

しかし、文字列をUIIMageに変換できないというエラーが表示されます。

どうすれば機能しますか?

私が試してみました:

let image = UIImage(named: "redTap.png")

tapButton.setImage(image, forState: UIControlState.Normal)

動作するようになりましたが、今は問題があります。

画像は赤いテキストであると想定されていますが、青色で表示されます。

私は使用して画像を正しく表示することができました:

let image = UIImage(named: imageColor[randNum])?.imageWithRenderingMode(.AlwaysOriginal)
tapButton.setImage(image, forState: UIControlState.Normal)

私が今欲しいのは、ボタンが押されたときにボタンが強調表示されないようにすることです。コードを介さずにxcodeで画像が割り当てられているボタンが他にもいくつかあります。押しても強調表示されません。

では、ボタンが押されたときに強調表示を取り除くにはどうすればよいですか?

4
user2303213

「.png」は必要ありません。

「.imageWithRenderingMode(.AlwaysOriginal)」が機能している場合:異なる状態で同じ画像を維持するには、異なる状態に同じ画像/プロパティを設定する必要があります。

@IBOutlet var tapButton: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()

    tapButton.setImage(UIImage(named: "redTap")?.imageWithRenderingMode(.AlwaysOriginal), forState: .Normal)
    tapButton.setImage(UIImage(named: "redTap")?.imageWithRenderingMode(.AlwaysOriginal), forState: .Highlighted)
}
10
Meagan S.

スウィフト3

yourBtn.setImage( UIImage.init(named: "imagename"), for: .normal)
8
Amr Angry

現在(Swift 3エディション):

@IBOutlet var tapButton: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()

    tapButton.setImage(UIImage(named: "redTap")?.withRenderingMode(.alwaysOriginal), for: .normal)
    tapButton.setImage(UIImage(named: "redTap")?.withRenderingMode(.alwaysOriginal), for: .normal)
}
2

まず、インターフェイスビルダーでボタンタイプをCustomに設定し、ボタンの通常の状態の画像を設定します。

enter image description here

クラスファイルのボタンのIBOutletを次のように接続します

@IBOutlet weak var btnCheckbox: UIButton!

viewDidLoadのクラスファイルで、選択した状態のイメージを

btnCheckbox.setImage(UIImage.init(named: "name_of_image"), for: .selected)

クラスファイルに@IBActionを次のように作成します

@IBAction func onTapCheckBox(_ sender: UIButton) {
    sender.isSelected = !sender.isSelected
}

次に、@IBActionをインターフェースビルダーからボタンのTouch up Insideイベントに接続します

0
Siddhesh Bhide

簡単な解決策が1つあります。

@IBOutlet var tapButton: UIButton!{
didSet{
let image = UIImage(named: imageColor[randNum])
tapButton.setImage(image, forState: UIControlState.Normal)
}

さらに、属性インスペクターで、ボタンタイプを「カスタム」に設定します

0
wenqi

Let = UIImage(named: "redTap.png")tapButton.setImage(image、.Normal)とします。

0
impression7vx

まず、必要な画像をAssets.xcassetsフォルダーに配置します。ドラッグするだけです。ダブルクリックすることで、好きなように呼び出すことができます。 「redTap」と呼ばれているとしましょう。

あなたが置くコードのために:

@IBOutlet var tapButton: UIButton!

override func viewDidLoad() {

    super.viewDidLoad()

    let redTapImage = UIImage(named: "redTap")
    tapButton.setImage(redTapImage, forState: UIControlState.Normal)
}
0
Marco
let button = UIButton(type: .Custom)
let image = UIImage(named:"redTap")?.imageWithRenderingMode(.AlwaysTemplate)
button.setImage(image, forState: .Normal)
button.tintColor = UIColor.redColor()
0
user3441734