2014-11-10 3 views

ответ

204

Из кода ОВС-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) 
+5

вы должны установить buttonWithType в UIButtonType.Custom, а не система, пока изображение не показывает – sazz

+6

Для тех, кто ищет синтаксис Swift 3: 'playButton.setImage (UIImage (названный: "play.png"), для: .Normal) ' –

0

вы можете сделать это, выделив кнопку и в insepctor на правой панели ручного инструмента вы можете обновить изображение. Очевидно, вы можете сделать это в коде также, как указано выше, но это еще один вариант для вас

5

Я предпочитаю метод инициализации моих переменных в верхней первой:

let playButton:UIButton! 
var image:UIImage! 

, а затем устанавливать их в viewDidLoad

override func viewDidLoad { 
    ... 
    playButton = UIButton(type: .Custom) 
    imagePlay = UIImage(named:"play.png") 
    playButton.setImage(imagePlay, forState: .Normal) 
} 
9

предположить, что это связано ваше 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) 
} 
+0

Вам не нужно устанавливать кнопку в качестве розетки, если у вас есть действие для кнопки. Датчик параметра кнопки - это ссылка на кнопку, так что вы можете просто «позволить yourButton = отправитель как UIButton», а затем внести изменения в кнопку при необходимости. –

6

По стремительной 3.0 .Normal состояние было removed.you можно использовать следующие применять нормальное состояние.

myButton.setTitle("myTitle", for: []) 
6

Для тех, кто с помощью Assets.xcassets и Swift 3, было бы, как это (нет необходимости в .png)

let buttonDone = UIButton(type: .Custom) 

if let image = UIImage(named: "Done") { 
    self.buttonDone.setImage(image, for: .normal) 
} 
2

в быстрой 3,0:

@IBOutlet weak var selectionButton: UIButton! 

selectionButton.setImage(UIImage.addBlueIcon, for: .selected) 
3

Да, даже мы можем изменить изображение 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) 
    } 

} 

Здесь после каждого нажатия кнопки изображение кнопки будет меняться в качестве альтернативы.

Смежные вопросы