2012-12-30 1 views
1

맞춤 배경 이미지에 정확하게 맞게 크기가 CGSizeMake(75, 23) 인 매우 얇은 UIButton을 만들려고합니다. 버튼에 제목이 있어야합니다.iOS/Obj-C : UIButton 제목에서 패딩 제거

setTitle:forState:에 전화 한 후 배경 이미지를 망가 뜨리면서 (즉, 매우 조심성 없게 만드는) 버튼 주변의 패딩을 고려하여 버튼의 크기가 조정됩니다. UILabel 서브 뷰에서 제목 글꼴을 꽤 작은 크기로 설정 했으므로 문제는 있지만 패딩을 일으키는 글꼴은 아닙니다. 따라서이 패딩을 제거하고 싶습니다. contentEdgeInsets, imageEdgeInsetstitleEdgeInsets 속성의 기본값은 UIButton이며 모두 UIEdgeInsetsZero이므로이 패딩은 UILabel 하위 뷰에있는 것으로 가정합니다. 그렇다면 UILabel을 서브 클래 싱하고 textRectForBounds:limitedToNumberOfLines:을 오버라이드하여 제거 할 수 있다고 생각하지만 확실치 않습니다. (시도해 본 사람의 의견을 듣고 기쁘게 생각합니다.) 어쨌든 나는 쉬운 길을 찾고 있습니다.

검색 한 결과 아무 것도 찾지 못했습니다.

제안 사항?

+0

당신이 시도해 봤어 :-) 문제를 해결해야 당신의 투명성 문제 의 처리됩니다 :-) 기적이다 제목을 설정 한 후 버튼의 프레임을 설정 하시겠습니까? – lnafziger

+0

버튼에 PNG를 사용하고 있습니까? 레이블을 PNG 파일 자체에 추가하면 레이블에서 발생하는 모든 패딩을 피할 수 있습니다. 물론 버튼 라벨을 변경하는 기능이 느슨합니다. –

+0

@lnafziger 네, 불행히도, 아무 소용이 시도. –

답변

0

그럴 수 있습니다.

나는 전에이 도구를 추천했지만 그것은

OBShapedButton

그것은

+0

감사합니다 @JeffKranenburg,'OBShapedButton'은 좋은 솔루션 인 것처럼 보이고 투명성 문제를 해결하지만 다른 솔루션을 찾을 수 없다면 구현하지 않을 것입니다. 성능 손실이 발생할 가능성이 있으므로 (20 개가 넘을 것입니다. 주어진 시간에보기에서이 단추의 인스턴스). –

+0

나는 무엇을 의미 하는지를 안다. 나는 앱을 가지고 있는데, 시작 화면에서 8 개의 인스턴스를 사용한다. 아무것도 눈치 채지 못했다. 그러나 나는 약간의주고 받기가 있어야한다고 생각합니다. 더 나은 솔루션을 찾을 때까지 지금 구현하더라도. –