꾸준히 안타치기

ButtonUI 코드로 만들때 배경이미지 안보임 본문

iOS/문제해결

ButtonUI 코드로 만들때 배경이미지 안보임

글자줍기 2022. 2. 6. 14:51
반응형

문제) 분명히 버튼에 배경이 이미지를 넣었는데 버튼에 넣은 배경이미지가 보이지 않았다...
    self.setBackgroundImage(UIImage(named: "button-bg"), for: .normal)
    self.setTitle("버튼", for: .normal)

스토리보드로 추가한 버튼 속성을 클래스안에서 코드로 설정을 해주었는데, 

인터페이스빌더 안에서도 설정을 바꿔줘야 배경이미지가 적용된다고한다. ^^ 가만안둬 애플 

 

더보기

public class CSLogButton: UIButton {

    // 로그 출력 타입

    public var logType: CSLogType = .basic // 기본값은 베이직

    

    public required init?(coder aDecoder: NSCoder) {

        super.init(coder: aDecoder)

        //버튼에 스타일 적용?? 이미지 적용안됨???***************************************왜안보임?

        self.setBackgroundImage(UIImage(named: "button-bg"), for: .normal)

        self.setTitle("버튼", for: .normal)

        self.tintColor = .blue

        

        //버튼의 클릭 이벤트에 logging 메소드를 연결

        self.addTarget(self, action: #selector(logging(_:)), for: .touchUpInside)

    }

    

    

    @objc func logging(_ sender: UIButton){

        switch self.logType {

        case .basic : // 단순히 로그만 출력함

            NSLog("버튼이 클릭되었습니다.")

            

        case .title : // 단순히 로그만 출력함

            let btnTitle = sender.titleLabel?.text ?? "타이틀 없는"

            NSLog("\(btnTitle)버튼이 클릭되었습니다.")

            

        case .tag: // 로그에 버튼의 태그를 출력함

            NSLog("\(sender.tag)버튼이 클릭되었습니다.")

        }

    }

}

 

해결 ) 스토리 보드에가서 배경이미지를 넣고자 하는 버튼을 선택하고,  Style을  Defalut로 바꿔준다.

버튼 배경이미지가 잘적용되었다.

 

https://developer.apple.com/forums/thread/693933

 

UIButton setBackgroundImage for di… | Apple Developer Forums

I actually just figured this out based on a totally different issue I was trying to resolve with the UIButton. I found that the "default" style setting for a UIButton is "Plain". When I changed it to "Default", the background image now works on expected.

developer.apple.com

 

반응형
Comments