2017-01-20 5 views
0

텍스트 (즉, 작고 오래된 장치)에 맞게 글꼴 크기를 조정해야하는 두 개의 UILabels가 있습니다. .adjustsFontForContentSizeCategory없이 UILabel 글꼴 크기를 조정하십시오.

쉽게 .adjustsFontSizeToFitWidth 속성을 사용하여 해결 될 수 있지만, 일이 모두 UILabels 다른 근처에 하나와 유사한 정보를 전달, 나는 그들이 동일한 글꼴 크기를 가지고 (그리고 adjustsFontSizeToFitWidth가 독립적으로 조정됩니다) 원하는 것입니다.

그래서, 어떻게 든 생각하고 있었는데, 어쨌든 (이것은 내가 도움이 필요한 곳입니다) 두 글꼴 모두에 글꼴 크기가 필요하고 두 글꼴 모두에서 가장 작은 글꼴을 사용해야한다고 계산합니다.

image

이 작업을 수행하는 방법에 어떤 아이디어? 두 레이블은 여러 줄 (2 줄)이며 항상 같은 크기입니다.

미리 감사드립니다.

+0

후 스크린 샷. –

+0

포어 핸드에서 가장 작은 글꼴이 필요한 글꼴을 알고 있습니까? 더 쉽게 만들 수 있습니다. – Eric

+0

@AdilSoomro 여기 http://imgur.com/a/5KShO –

답변

0

.adjustsFontSizeToFitWidth 속성을 true로 설정하고 가장 작은 글꼴을 가져온 다음 두 너비를 비교하고 두 글꼴의 너비를 가장 작은 글꼴로 설정합니다. 의사 코드의 예 :

.adjustsFontSizeToFitWidth = true 
var fontSizeOne = labelOne.fontSize 
var fontSizeTwo = labelTwo.fontSize 

if(fontSizeOne < fontSizeTwo) 
    { 
    labelTwo.fontSize = labelOne.fontSize 
    } 
else 
    { 
    labelOne.fontSize = labelTwo.fontSize 
    } 
+0

처음에는 이것에 대해 생각했지만 fontSize 속성은 글꼴 크기를 변경하더라도 동일하게 유지됩니다. –

0

당신은 min 기능을 사용하여 윌의 대답은 지금까지 짧은 @ 만들 수 :

labelOne.adjustsFontSizeToFitWidth = true 
    labelTwo.adjustFontSizeToFitWidth = true 

    var fontSizeOne = labelOne.font.pointSize 
    var fontSizeTwo = labelTwo.font.pointSize 

    var min = min(fontSizeOne, fontSizeTwo) 
    labelOne.font = UIFont.systemFont(ofSize: min)) 
    labelTwo.font = labelOne.font 
+0

첫 번째 답장 Eric에게 감사드립니다! 그러나 이것은 효과가 없었습니다. 내가 생각하기에 pointSize는 크기의 시각적 변화에도 불구하고 동일합니다. –

+0

fontSizeOne : 20.0 fontSizeTwo : 20.0 –

+0

실제 글꼴 크기를 얻는 것은 매우 어려울 것 같습니다. [이 스택 오버플로 게시물] (http://stackoverflow.com/questions/34622503/when-do-adjustsfontsizetofitwidth-or) - 크기 변경 - 문맥 - 행동)이 당신을 도울 수 있습니까? – Eric