문제

이름이 일반 글꼴이고 성은 대담한 내장 연락처 iPhone 앱과 유사한 이름의 이름을 구현하려고합니다. 빠른 Google은 iPhone SDK가 Uilabels의 풍부한 텍스트 지원이 부족하여 소리가 들리지 않는다는 것을 암시합니다.

UiwebView를 사용하여 권장되는 솔루션 중 하나는 HTML Bold Tags가 필요한 마크 업을 제공 할 수있는 텍스트를 포맷하기 위해 권장되었습니다. 내가 틀렸다면 나를 수정하지만 이것은 과잉 인 것 같고 앱의 성능에 영향을 미칠 것입니다.

내가 더 조사하려고하는 또 다른 솔루션은 볼드 텍스트를 위해 두 번째 레이블이 형식화 된 두 개의 uilabels를 포함하는 사용자 정의 UitableViewCell을 만드는 것입니다. 이것은 간단 해 보이지만 텍스트에 맞게 레이블에 자동 크기가 수평으로 표시되는 방법 (특정 최대 너비) 인터페이스 빌더를 통해 가능합니까, 아니면 프로그래밍 방식으로 수행해야합니까?

여기에 올바른 길을 가고 있습니까? 아니면이 사소한 효과를 달성 할 수있는 훨씬 쉬운 방법이 있습니까?

도움이 되었습니까?

해결책

나는 당신이 Uilabel을 서브 클래스하고 스스로 그림을 해야하는지 궁금합니다. 그런 다음 사용할 수 있습니다 CGContextSelectFont, CGContextGetTextPosition, CGContextSetTextPosition, CGContextShowText 텍스트를 그리는 등.

일반 글꼴을 선택하고, 초기 텍스트 위치를 설정하고, 텍스트를 그리며, 텍스트 위치를 몇 픽셀로 전진시키고, 대담한 글꼴을 선택하고, 대담한 텍스트를 그리는 등을 켜십시오.

나는 이전에 직접 해본 적이 없지만 내 응용 프로그램 중 하나 에이 솔루션을 사용하려고 생각하고 있습니다.

다른 팁

이것이 묻은 것 같습니다 약간의 타임스 다양한 GOISE에서 스택 오버 플로우에. 일반적인 솔루션은 Three20 Library의 TtstyledTextLabel 인 것 같습니다. iPhone SDK에 내장 된 풍부한 텍스트 레이블이 포함되어 있고 내 자신의 롤링이 부족할 때 까지이 수업은 다음으로 가장 좋은 것으로 보입니다.

편집 : 방금이 솔루션을 발견했는데 훨씬 더 좋아 보입니다. https://github.com/chrisdevereux/slash

enter code here  NSDictionary  *firstNameAttributes = @{ NSFontAttributeName : [UIFont fontWithName:@"Arial" size:20.0],
                                            NSStrokeColorAttributeName : [UIColor blackColor]};
    NSDictionary  *lastNameAttributes = @{NSFontAttributeName : [UIFont fontWithName:@"Arial-Bold" size:20.0],
                                          NSStrokeColorAttributeName : [UIColor blackColor]};
    NSString* first = @"udhaya";
    NSString* last = @" chandrika";


    NSString *append=[NSString stringWithFormat:@"%@%@",first,last];

    cell.textLabel.text = [NSString stringWithFormat:@"%@",append];

    NSMutableAttributedString * name =
    [[NSMutableAttributedString alloc] initWithString:first attributes:firstNameAttributes];
    NSMutableAttributedString * lastName =
    [[NSMutableAttributedString alloc] initWithString:last attributes:lastNameAttributes];

    [name appendAttributedString:lastName];

    [[cell textLabel] setAttributedText:name];
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top