Swift에서 UIButton 이미지를 변경하는 방법
Swift를 사용하여 UIButton의 이미지를 변경하려고합니다. 어떻게해야합니까?
이것은 OBJ-C 코드이지만 Swift에 대해서는 잘 모릅니다.
[playButton setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
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)
}
Swift 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)
}
}
Assets.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)
}
네, 플래그를 사용하여 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)
}
}
Here, after every click your button image will change alternatively.
you can actually do this by highlighting the button and within the insepctor on the right hand tool bar you can update the image. obviously you can do it in code also as stated previously but this is another option for you
In Swift 4.2 and Xcode 10.1
Add image for selected 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
But if you want to change selected button image you need to change it's selected state. Then only selected image will appear in your button.
@objc func onclickDateCheckMark(sender:UIButton) {
if sender.isSelected == true {
sender.isSelected = false
print("not Selected")
}else {
sender.isSelected = true
print("Selected")
}
}
in swift 3.0:
@IBOutlet weak var selectionButton: UIButton!
selectionButton.setImage(UIImage.addBlueIcon, for: .selected)
참고URL : https://stackoverflow.com/questions/26837371/how-to-change-uibutton-image-in-swift
'program tip' 카테고리의 다른 글
Notification.Builder를 정확히 사용하는 방법 (0) | 2020.08.21 |
---|---|
Django에서 Forms에 대한 테스트를 어떻게 작성해야합니까? (0) | 2020.08.21 |
Django : DB에서 객체를 얻거나 일치하는 것이 없으면 'None' (0) | 2020.08.21 |
첫 글자를 대문자로 표기하십시오. (0) | 2020.08.21 |
WPF 애플리케이션에서 콘솔로 출력되지 않습니까? (0) | 2020.08.21 |