9 ответов:
из вашего кода 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)Для Swift 3:
let playButton = UIButton(type: .custom) playButton.setImage(UIImage(named: "play.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) }
для всех, кто использует активы.xcassets и Swift 3, это было бы так (не нужно .png)
let buttonDone = UIButton(type: .Custom) if let image = UIImage(named: "Done") { self.buttonDone.setImage(image, for: .normal) }
начиная с swift 3.0 .нормальное состояние было удалено.вы можете использовать следующее, чтобы применить нормальное состояние.
myButton.setTitle("myTitle", for: [])
Я предпочитаю метод инициализации моих переменных в начале:
let playButton:UIButton! var image:UIImage!а затем установить их в viewDidLoad
override func viewDidLoad { ... playButton = UIButton(type: .Custom) imagePlay = UIImage(named:"play.png") playButton.setImage(imagePlay, forState: .Normal) }
в Swift 4, (в Xcode 9) пример для включения или выключения изображения кнопки (btnRec):
var bRec:Bool = true @IBOutlet weak var btnRec: UIButton! @IBAction func btnRec(_ sender: Any) { bRec = !bRec if (bRec == true) { btnRec.setImage(UIImage(named: "MicOn.png"), for: .normal) } else { btnRec.setImage(UIImage(named: "MicOff.png"), for: .normal) } }
да, даже мы можем изменить изображение UIButton, используя флаг.
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) } }здесь, после каждого нажатия кнопки изображение будет меняться в качестве альтернативы.
вы можете сделать это, выделив кнопку и в insepctor на правой панели инструментов вы можете обновить изображение. очевидно, что вы можете сделать это в коде также, как указано ранее, но это еще один вариант для вас
в swift 3.0:
@IBOutlet weak var selectionButton: UIButton! selectionButton.setImage(UIImage.addBlueIcon, for: .selected)
Comments