본문 바로가기

iOS/Deep dive!!!

[Swift/UIKit] UIButton.setBackgroundImage 이미지 설정 안될때!! (커스텀 버튼)

728x90

 

 

  • 커스텀 버튼의 백그라운드 설정이 안 될때( in IOS 15 )


 


시행 착오

 

클래스를 통해 커스텀 버튼을 만들고 있었다.

코드와 스토리보드에서 사용할 수 있도록 만들었다.

public class customButton : UIButton
{
	public required init?(coder aDecoder : NSCoder)
    {
    	super.init(coder : aDecoder)
        
        self.setBackgroundImage(UIImage(named: "lovelyButtonImg"), for : .normal)
        self.tintColor = .white
    }
    
}

 

 

우선 스토리보드에서 버튼을 추가한 후 실행을 했는데 버튼의 background이미지가 적용이 되지 않았다.

더보기 버튼의 클래스 타입을 customButton으로 지정했는데..

frame도 스토리 보드에서 지정했기에 문제는 없었다.

혹시나 하는 마음에 스토리보드에서 레이아웃도 지정해줬는데 보이질 않았다.

 

.setImage를 통해서 이미지를 지정하면 보이긴 하는데

이렇게 이미지 따로 title따로 적용이된다.

버튼의 스타일을 Gray나 Tinted, Filled로 바꿔서 클래스를 내가 구현 타입으로 바꿨는데도 적용이 안된다.

 

어떻게든 setBackgroundImage를 적용시켜야 버튼의 백그라운드 이미지 안에 글자가 보인다.


해결 법!!

 

해결과정은 

어트리뷰트 인스펙터 탭 -> style -> Default로 바꾸면 된다. 

ios 13에서의 스토리보드일 때는 style을 아무거나 설정해도 커스텀 클래스 도입이 됬지만 ios 15로 되면서 Default설정을 해야한다.

 

 

visit my github

 

728x90