Yanıtlar:
Obc-C kodunuzdan buton için bir Resim ayarlamak istediğinizi düşünüyorum, bu yüzden şu yolu deneyin:
let playButton = UIButton(type: .Custom)
if let image = UIImage(named: "play.png") {
playButton.setImage(image, forState: .Normal)
}
Kısacası:
playButton.setImage(UIImage(named: "play.png"), forState: UIControlState.Normal)
Swift 3 için:
let playButton = UIButton(type: .custom)
playButton.setImage(UIImage(named: "play.png"), for: .normal)
playButton.setImage(UIImage(named: "play.png"), for: .normal)
Swift 4'te, (Xcode 9) düğmenin resmini Açık veya Kapalı duruma getirme örneği (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)
}
}
bunun senin UIButton Name
gibi bağlı olduğunu varsay
@IBOutlet var btn_refresh: UIButton!
resminizi doğrudan üç moda yerleştirebilirsiniz
// 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)
senin düğme eyleminde
//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)
}
Değişkenlerimi ilk olarak en üstte başlatma yöntemini tercih ederim:
let playButton:UIButton!
var image:UIImage!
ve sonra bunları viewDidLoad'da ayarlama
override func viewDidLoad {
...
playButton = UIButton(type: .Custom)
imagePlay = UIImage(named:"play.png")
playButton.setImage(imagePlay, forState: .Normal)
}
Evet, bayrak kullanarak UIButton'un görüntüsünü bile değiştirebiliriz.
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)
}
}
Burada, her tıklamadan sonra düğme resminiz alternatif olarak değişecektir.
Swift 5 ve görüntünün düğme boyutuna göre ölçeklenmesini ancak düğme sınırları içinde kalmasını sağlar.
yourButton.clipsToBounds = true
yourButton.contentMode = .scaleAspectFill
// Use setBackgroundImage or setImage
yourButton.setBackgroundImage(UIImage(named: "yourImage"), for: .normal)
bunu aslında düğmeyi vurgulayarak yapabilirsiniz ve sağ taraftaki araç çubuğundaki insepctor içinde resmi güncelleyebilirsiniz. açıkçası bunu daha önce belirtildiği gibi kodla da yapabilirsiniz, ancak bu sizin için başka bir seçenektir
Swift 4.2 ve Xcode 10.1'de
Seçili UIB düğmesi için resim ekle
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
Ancak seçili düğme görüntüsünü değiştirmek isterseniz, seçili durumunu değiştirmeniz gerekir. Ardından düğmenizde yalnızca seçilen resim görünecektir.
@objc func onclickDateCheckMark(sender:UIButton) {
if sender.isSelected == true {
sender.isSelected = false
print("not Selected")
}else {
sender.isSelected = true
print("Selected")
}
}
hızlı 3.0'da :
@IBOutlet weak var selectionButton: UIButton!
selectionButton.setImage(UIImage.addBlueIcon, for: .selected)