UIButton의 Insets 설정이 잘못돼서 조사해봤어요.

3136 단어 SwiftiOS
UIButton에 패딩을 설정해 표시하려고 다음 코드를 썼는데 문자 크기는 고정적으로 지정됐는데 크기가 다른 현상이 나타났다.
btn.layer.cornerRadius = 16
btn.backgroundColor = UIColor.gray
btn.titleLabel?.font = UIFont.systemFont(ofSize: 28.0)
btn.titleEdgeInsets = UIEdgeInsetsMake(5.0, 7.0, 5.0, 7.0)
btn.titleLabel?.adjustsFontSizeToFitWidth = true
■ 지정titleEdgeInsets
처음에는 일본어만 이렇게 될 줄 알았는데 없는 것 같아요.글자수의 영향을 받은 것 같다.
그나저나 지정titleEdgeInsets이 없으면 문자 크기가 분산되지 않는다.
■ 지정하지 않음titleEdgeInsets UIButton 반을 자세히 살펴보니 Insets를 지정할 수 있는 속성이 하나 더 있었다.바로 contentEdgeInsets입니다.UIEdgeInsetsMake(5,7,5,7)가 아닌 titleEdgeInsets를 지정해 보았습니다. 아래와 같습니다.
■ 지정contentEdgeInsets
Insets가 올바르게 설정된 것 같습니다.
나는 이런 현상에 대한 보도가 있는지 찾다가 스냅키트의 issue를 발견했다.에서는 "아쉽게도 오토LayoutcontentEdgeInsets이 작동하지 않는다. 하지만 titleEdgeInsets하면 가능하다. 또 contentEdgeInsets를 다른 방법으로 사용하는 방법도 있다."이런 대화가 있었어요.최종적으로 이 issue를 제정한 사람intrinsicContentSize의 일부분은 줄인 값을 지정하고titleEdgeInsets로 부족한 부분을 보충했다.이 부분에 관해서는 본다어떤 Stackoverflow의 대답.고 할 수 있다.
따라서 UIButton Inset이 순조롭지 않을 때 사용contentEdgeInsets을 연구해 보면 순조롭게 진행될 수 있다.

좋은 웹페이지 즐겨찾기