2014-09-26 2 views
1

나는 다음과 같은 코드를 사용하여 UILabel의를 사용하여 경고 배지를 만드는 오전 :System UIFont에 대해 ascender 또는 descender를 설정할 수 있습니까?

[label setText:@"67"]; 
    UIFont * font = [UIFont systemFontOfSize:11]; 
    [label setFont:font]; 
    [label sizeToFit]; 

    [label setTextAlignment:NSTextAlignmentCenter]; 
    [label setBackgroundColor:[UIColor yellowColor]]; 
    [label setTextColor:[UIColor whiteColor]]; 
    label.layer.cornerRadius = label.frame.size.height/2; 

Badge screenshot

모든 텍스트의 미세하지만 수직 정렬이 정확하지입니다. 그것의 상단에 더 가깝다. UILabel의 수직 가운데에 텍스트를 정렬하려면 어떻게해야합니까?

UIFont의 상감 특성과 하강 속성을 읽었을 때 UILabel의 세로 중심에 텍스트를 정렬하는 데 사용할 수 있습니까?

답변

2

당신은 레이블의 텍스트를 일반 NSString 대신에 기인 문자열을 사용할 수를 (그래서 attributedText 속성을 사용하여 text 대신) NSBaselineOffsetAttributeName 속성 described here at Apple을 사용하십시오.

+0

네, 효과가있었습니다! 고마워요 @ Cyrille! –

-1

수직 UILabel의 사용의 텍스트 정렬하기 -

myLabel.numberOfLines = 0; 
[myLabel sizeToFit]; 

자세한 응답 확인을 위해 This SO Answer

+0

죄송합니다. 이것은 작동하지 않습니다. –

1

다른 해결책은 레이블에 여백을 추가하기 위해 UILabel의 하위 클래스가 될 수 있으므로 기준선 이동을 보정하기 위해 사용자 지정 "위쪽 여백"을 정의 할 수 있습니다.

구현 세부 정보를 보려면 this question을 참조하십시오.

+0

더 많은 컨트롤이 있습니다. 이것에 대해 잘 알고 있습니다. –

관련 문제