Jawaban:
Dari kode Obc-C Anda, saya pikir Anda ingin mengatur tombol Gambar untuk jadi coba cara ini:
let playButton = UIButton(type: .Custom)
if let image = UIImage(named: "play.png") {
playButton.setImage(image, forState: .Normal)
}
Pendeknya:
playButton.setImage(UIImage(named: "play.png"), forState: UIControlState.Normal)
Untuk Swift 3:
let playButton = UIButton(type: .custom)
playButton.setImage(UIImage(named: "play.png"), for: .normal)
playButton.setImage(UIImage(named: "play.png"), for: .normal)
di Swift 4, contoh (Xcode 9) untuk mengubah gambar tombol ke On atau Off (btnRec):
var bRec:Bool = true
@IBOutlet weak var btnRec: UIButton!
@IBAction func btnRec(_ sender: Any) {
bRec = !bRec
if bRec {
btnRec.setImage(UIImage(named: "MicOn.png"), for: .normal)
} else {
btnRec.setImage(UIImage(named: "MicOff.png"), for: .normal)
}
}
asumsikan bahwa ini adalah UIButton Name
like Anda yang terhubung
@IBOutlet var btn_refresh: UIButton!
Anda dapat langsung menempatkan gambar Anda dalam tiga mode
// for normal state
btn_refresh.setImage(UIImage(named: "xxx.png"), forState: UIControlState.Normal)
// for Highlighted state
btn_refresh.setImage(UIImage(named: "yyy.png"), forState: UIControlState.Highlighted)
// for Selected state
btn_refresh.setImage(UIImage(named: "zzzz.png"), forState: UIControlState.Selected)
pada tindakan tombol Anda
//MARK: button_refresh action
@IBAction func button_refresh_touchup_inside(sender: UIButton)
{
//if you set the image on same UIButton
sender.setImage(UIImage(named: "newimage.png"), forState: UIControlState.Normal)
//if you set the image on another UIButton
youranotherbuttonName.setImage(UIImage(named: "newimage.png"), forState: UIControlState.Normal)
}
Saya lebih suka metode menginisialisasi variabel saya di atas terlebih dahulu:
let playButton:UIButton!
var image:UIImage!
lalu menyetelnya di viewDidLoad
override func viewDidLoad {
...
playButton = UIButton(type: .Custom)
imagePlay = UIImage(named:"play.png")
playButton.setImage(imagePlay, forState: .Normal)
}
Ya, bahkan kita bisa mengubah gambar UIButton, dengan menggunakan flag.
class ViewController: UIViewController
{
@IBOutlet var btnImage: UIButton!
var flag = false
override func viewDidLoad()
{
super.viewDidLoad()
//setting default image for button
setButtonImage()
}
@IBAction func btnClick(_ sender: Any)
{
flag = !flag
setButtonImage()
}
func setButtonImage(){
let imgName = flag ? "share" : "image"
let image1 = UIImage(named: "\(imgName).png")!
self.btnImage.setImage(image1, for: .normal)
}
}
Di sini, setelah setiap klik, gambar tombol Anda akan berubah secara bergantian.
Swift 5 dan memastikan gambar berskala dengan ukuran tombol tetapi tetap dalam batas tombol.
yourButton.clipsToBounds = true
yourButton.contentMode = .scaleAspectFill
// Use setBackgroundImage or setImage
yourButton.setBackgroundImage(UIImage(named: "yourImage"), for: .normal)
Anda sebenarnya dapat melakukan ini dengan menyorot tombol dan di dalam insepctor di bilah alat sebelah kanan Anda dapat memperbarui gambar. jelas Anda dapat melakukannya dalam kode juga seperti yang dinyatakan sebelumnya tetapi ini adalah opsi lain untuk Anda
Di Swift 4.2 dan Xcode 10.1
Tambahkan gambar untuk UIButton yang dipilih
button.addTarget(self, action: #selector(self.onclickDateCheckMark), for: .touchUpInside)//Target
button.setImage(UIImage.init(named: "uncheck"), for: UIControl.State.normal)//When selected
button.setImage(UIImage.init(named: "check"), for: UIControl.State.highlighted)//When highlighted
button.setImage(UIImage.init(named: "check"), for: UIControl.State.selected)//When selected
Tetapi jika Anda ingin mengubah gambar tombol yang dipilih, Anda perlu mengubah status yang dipilih. Kemudian hanya gambar yang dipilih yang akan muncul di tombol Anda.
@objc func onclickDateCheckMark(sender:UIButton) {
if sender.isSelected == true {
sender.isSelected = false
print("not Selected")
}else {
sender.isSelected = true
print("Selected")
}
}
di 3.0 cepat :
@IBOutlet weak var selectionButton: UIButton!
selectionButton.setImage(UIImage.addBlueIcon, for: .selected)