UILabel * label = [[UILabel alloc] init];
NSString * text = @"hellohellohellohellohellohellohellohellohellohellohellohello ";
label.text = text;
[label setNumberOfLines:0];
UIFont *font = [UIFont fontWithName:@"Arial" size:14];
//設置字體
label.font = font;
CGSize size = CGSizeMake(300, 20000.0f);
size = [text sizeWithFont:font constrainedToSize:size lineBreakMode:NSLineBreakByCharWrapping];
[label setFrame:CGRectMake(10, 0, size.width, size.height)];
[self.view addSubview:label];
lineBreakMode:設置標簽文字過長時的顯示方式。
label.lineBreakMode = NSLineBreakByCharWrapping;以字符為顯示單位顯示,後面部分省略不顯示。
label.lineBreakMode = NSLineBreakByClipping;剪切與文本寬度相同的內容長度,後半部分被刪除。
label.lineBreakMode = NSLineBreakByTruncatingHead;前面部分文字以……方式省略,顯示尾部文字內容。
label.lineBreakMode = NSLineBreakByTruncatingMiddle;中間的內容以……方式省略,顯示頭尾的文字內容。
label.lineBreakMode = NSLineBreakByTruncatingTail;結尾部分的內容以……方式省略,顯示頭的文字內容。
label.lineBreakMode = NSLineBreakByWordWrapping;以單詞為顯示單位顯示,後面部分省略不顯示。
http://www.xue5.com/Mobile/iOS/673562.html
這是網上的代碼,可以正常運行。但還遇到一個問題,就是這裡的label是動態生成的,如果對於view中一個拖出來的label然後在controller中連接一個對應的屬性,這個label的setFrame始終無效,這時可以點到size inspector中,找到constraints中的height equals,點擊後面的齒輪圖案,選擇select and edit,在height constraints中將Priority的值設置的小一些即可。