Swift에서 UI 버튼 이미지를 변경하는 방법
스위프트를 사용하여 UI 버튼의 이미지를 바꾸려고 합니다.내가 무엇을 해야 하는가
이것은 OBJ-C 코드입니다.하지만 스위프트는 잘 모릅니다.
[playButton setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
Obc-C 코드에서 Image for 버튼을 설정하고 싶으니 다음 방법을 사용해 보십시오.
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
yourButton.setImage(UIImage(named: "BUTTON_FILENAME.png"), for: .normal)
Swift 4에서 (Xcode 9) 버튼 그림을 On 또는 Off(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)
}
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: [])
Swift 5를 선택하면 이미지가 버튼 크기에 맞게 조정되지만 버튼 범위 내에서 유지됩니다.
yourButton.clipsToBounds = true
yourButton.contentMode = .scaleAspectFill
// Use setBackgroundImage or setImage
yourButton.setBackgroundImage(UIImage(named: "yourImage"), for: .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)
}
네, 우리도 플래그를 사용하여 UI 버튼의 이미지를 변경할 수 있습니다.
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)
}
}
여기서는 클릭할 때마다 버튼 이미지가 대체적으로 변경됩니다.
버튼을 강조 표시하여 실제로 이 작업을 수행할 수 있으며 오른쪽 도구 모음의 검사기 내에서 이미지를 업데이트할 수 있습니다.분명히 당신은 앞서 말한 것처럼 코드로도 할 수 있지만 이것은 당신을 위한 또 다른 옵션입니다.
Swift 4.2 및 Xcode 10.1에서
선택한 UI에 대한 이미지 추가 버튼
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")
}
}
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
'programing' 카테고리의 다른 글
Git repo에 파일을 보관하지만 변경 내용을 추적하지 않음 (0) | 2023.05.21 |
---|---|
HTML 테이블에서 열을 숨기는 방법은 무엇입니까? (0) | 2023.05.21 |
HttpWebRequest 및 HttpWebResponse에서 HttpStatus 코드 번호(200, 301, 404 등) 가져오기 (0) | 2023.05.21 |
SVN을 사용해야 합니까 아니면 Git을 사용해야 합니까? (0) | 2023.05.21 |
Excel의 VBA 기능이 범위를 반환할 수 있습니까? (0) | 2023.05.21 |