2012-12-02 5 views
1

많은 줄이있는 UILabel이 있습니다. 줄 수는 런타임에 달려 있습니다.xcode의 UILabel에서 UILinebreakmode가 작동하지 않습니까?

내가 그것을 어떻게

-(void)viewDidLoad 
{ 
NSString *[email protected]""; 

    for(int i=0;i<[arr2 count];i++) 
    { 


     temp=[temp stringByAppendingString:[[array objectAtIndex:i]objectForKey:@"Specilities"]]; 
     temp=[temp stringByAppendingString:@","]; 
    } 
    temp = [temp substringToIndex:[temp length]-1]; 
CGSize constraint8 = CGSizeMake(190, 2000.0f); 
CGSize size8=[temp sizeWithFont:[UIFont fontWithName:@"Helvetica" size:14] constrainedToSize:constraint8 lineBreakMode:UILineBreakModeWordWrap]; 
specialities =[[UILabel alloc]init]; 
[specialities setFrame:CGRectMake(124,270,190, size8.height)]; 
specialities.textAlignment=UITextAlignmentLeft; 
specialities.backgroundColor=[UIColor clearColor]; 
specialities.font=[UIFont fontWithName:@"Helvetica" size:14]; 
specialities.text=[NSString stringWithFormat:@"%@ ",temp ]; 
specialities.numberOfLines=0; 
[specialities sizeToFit]; 
[self.view addSubview:specialities]; 
} 

Expected result: 

Family Dentistry,Dentist- 
Child,Dentist-Family, 
Orthodontist 

The result which Im getting: 

Family Dentistry,Dentist- 
Child,Dentist-Family,Orthodo 
ntist 
을 를 얻을 수 있습니다 :이 코드는

하지만 내 UILineBreakmode가 제대로 작동하지 않습니다 ..?

+0

'temp'의 정의는 어디에 있습니까? 예상되는 문자열에'temp'를 설정하고 예상 한 것을 성공적으로 얻습니다. – sunkehappy

+0

나는 유 I이 작성해야 좀 ... – Honey

답변

2

UILabel의 lineBreakMode 속성을 사용해보십시오. 예를 들어, 레이블에 이것을 시도 :

specialities.lineBreakMode=NSLineBreakByWordWrapping; 

가능한 옵션은 다음과 같습니다 가

enum { 
    NSLineBreakByWordWrapping = 0, 
    NSLineBreakByCharWrapping, 
    NSLineBreakByClipping, 
    NSLineBreakByTruncatingHead, 
    NSLineBreakByTruncatingTail, 
    NSLineBreakByTruncatingMiddle 
}; 
typedef NSUInteger NSLineBreakMode 

는 다양한 설정을 실험 해 (MOR 자세한 내용은 애플 docs 참조).

+0

제발 내 code.Can 편집 : 열거 { NSLineBreakByWordWrapping = 0, NSLineBreakByCharWrapping, NSLineBreakByClipping, NSLineBreakByTruncatingHead, NSLineBreakByTruncatingTail, NSLineBreakByTruncatingMiddle 을}; typedef NSUInteger NSLineBreakMode – Honey

+1

아니요, 아니요! 열거 형 값은 Apple 설명서에서 lineBreakMode 속성에 사용할 수있는 옵션입니다! 당신의 코드에서 "specialities.lineBreakMode = NSLineBreakByWordWrapping;"이라고 적는다. 결과를 확인하십시오! 결과가 만족스럽지 않으면 "specialities.lineBreakMode = NSLineBreakByWordWrapping;"과 같은 다음 옵션을 사용해보십시오. 기타.! 그러나 NSLineBreakByWordWrapping은 내 의견으로는 당신이 필요로하는 옵션이어야합니다! –

관련 문제