2012-12-02 36 views
1

我有一個UILabel,其中有很多行。行數取決於運行時間。 但我UILineBreakmode工作不正常..UILinebreakmode不適用於xcode中的UILabel?

這是代碼:

-(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 

我怎樣才能得到它呢?

+0

你的'temp'的定義在哪裏?我把'temp'設置爲你想要的字符串,併成功地得到你所期望的。 – sunkehappy

+0

我編輯code.Canü請看看... – Honey

回答

2

嘗試使用UILabel的lineBreakMode屬性進行試驗。 例如,嘗試這種在標籤上:

specialities.lineBreakMode=NSLineBreakByWordWrapping; 

可能的選項是: (見蘋果docs爲鐵道部細節)

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

嘗試用不同的設定。

+0

我應該在哪裏寫:枚舉{ NSLineBreakByWordWrapping = 0, NSLineBreakByCharWrapping, NSLineBreakByClipping, NSLineBreakByTruncatingHead, NSLineBreakByTruncatingTail, NSLineBreakByTruncatingMiddle }; typedef NSUInteger NSLineBreakMode – Honey

+1

不,不! enum值是Apple文檔中lineBreakMode屬性的可能選項!在你的代碼中寫入「specialities.lineBreakMode = NSLineBreakByWordWrapping;」並檢查結果!如果結果不令人滿意,請嘗試使用下一個選項,如「specialities.lineBreakMode = NSLineBreakByWordWrapping;」等等。!但NSLineBreakByWordWrapping應該是您需要的選項在我看來! –