[iOS] - SFSymbol로 UIImage를 지정한 Button의 사이즈 조절하기

sun02·2022년 1월 25일
0

iOS

목록 보기
13/27

UIButton의 이미지를 UIImage(systemName:)에서 SFsymbol을 사용하는 경우

해당 UIButton의 width나 height를 특정 상수 값으로 설정하더라도 버튼 이미지의 크기가 원하는 대로 보여지지 않는 경우가 있습니다.

예를 들어

다음의 좋아요, 댓글, dm 버튼은
button.setImage(UIImage(systemName: "heart"), for: .normal)
버튼의 setImage메서드에서 sfsymbol을 사용하여 생성한 것입니다.

위 버튼들은 현재 width 와 height를 24로 설정한 상태인데
기대한만큼 이미지의 크기가 크지 않습니다.

이를 해결하기 위해서 UIButton에 헬프 메서드를 작성하여 조절해줄 수 있습니다.


extension UIButton {

    func setImage(systemName: String) {
        contentHorizontalAlignment = .fill
        contentVerticalAlignment = .fill
        
        imageView?.contentMode = .scaleAspectFit
        imageEdgeInsets = .zero
        
        setImage(UIImage(systemName: systemName), for: .normal)
    }
}

extension을 사용해서 UIButton의 setImage()메서드를 다음과 같이 바꾸어줍니다.

이제 새로 작성한 setImage메서드를 사용하여 버튼의 이미지를 설정해줍니다.

비교를 위해 좋아요 버튼만 새로 작성한 setImage()메서드로 이미지를 설정해보았습니다.

모두 새로작성한 setImage()로 바꿔주면 다음과 같이 나타납니다.

0개의 댓글