जवाबों:
अपने Obc-C कोड से मुझे लगता है कि आप बटन के लिए एक छवि सेट करना चाहते हैं इसलिए इस तरह से प्रयास करें:
let playButton = UIButton(type: .Custom)
if let image = UIImage(named: "play.png") {
playButton.setImage(image, forState: .Normal)
}
संक्षेप में:
playButton.setImage(UIImage(named: "play.png"), forState: UIControlState.Normal)
स्विफ्ट 3 के लिए:
let playButton = UIButton(type: .custom)
playButton.setImage(UIImage(named: "play.png"), for: .normal)
playButton.setImage(UIImage(named: "play.png"), for: .normal)
स्विफ्ट 4 में, (Xcode 9) बटन के चित्र को चालू या बंद करने के लिए उदाहरण (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)
}
}
मान लें कि यह आपकी UIButton Name
तरह जुड़ा हुआ है
@IBOutlet var btn_refresh: UIButton!
आप सीधे अपनी छवि को तीन मोड में रख सकते हैं
// 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)
अपने बटन कार्रवाई पर
//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)
}
मैं पहले शीर्ष पर अपने चरों को आरंभ करने की विधि पसंद करता हूं:
let playButton:UIButton!
var image:UIImage!
और फिर उन्हें viewDidLoad में सेट करना
override func viewDidLoad {
...
playButton = UIButton(type: .Custom)
imagePlay = UIImage(named:"play.png")
playButton.setImage(imagePlay, forState: .Normal)
}
हां, यहां तक कि हम ध्वज का उपयोग करके यूआईब्यूटन की छवि को बदल सकते हैं।
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)
}
}
यहां, प्रत्येक क्लिक के बाद आपकी बटन छवि वैकल्पिक रूप से बदल जाएगी।
5 स्विफ्ट और बटन के आकार के लिए छवि को सुनिश्चित करता है, लेकिन बटन सीमा के भीतर रहता है।
yourButton.clipsToBounds = true
yourButton.contentMode = .scaleAspectFill
// Use setBackgroundImage or setImage
yourButton.setBackgroundImage(UIImage(named: "yourImage"), for: .normal)
आप वास्तव में बटन को हाइलाइट कर सकते हैं और दाएं हाथ के टूल बार में इंस्पेक्टर के भीतर आप छवि को अपडेट कर सकते हैं। स्पष्ट रूप से आप इसे कोड में भी कर सकते हैं जैसा कि पहले कहा गया है लेकिन यह आपके लिए एक और विकल्प है
स्विफ्ट 4.2 और एक्सकोड 10.1 में
चयनित UIButton के लिए छवि जोड़ें
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
लेकिन अगर आप चयनित बटन छवि को बदलना चाहते हैं, तो आपको चयनित राज्य को बदलना होगा। तब आपके बटन में केवल चयनित छवि दिखाई देगी।
@objc func onclickDateCheckMark(sender:UIButton) {
if sender.isSelected == true {
sender.isSelected = false
print("not Selected")
}else {
sender.isSelected = true
print("Selected")
}
}
तेजी से 3.0 में :
@IBOutlet weak var selectionButton: UIButton!
selectionButton.setImage(UIImage.addBlueIcon, for: .selected)