label適應文字

2021-07-04 11:46:43 字數 1680 閱讀 9842

//第一種:顯示全部

uifont*font = [uifontfontwithname:

@"arial"

size:

17];

cgsize size = cgsizemake(320,2000);

cgsizelabelsize = [str sizewithfont:font constrainedtosize:size linebreakmode:uilinebreakmodewordwrap];

label.frame = cgrectmake(view.frame.origin.x + view.frame.size.width + 10, view.frame.origin.y, labelsize.width, labelsize.height);

// 第二種:只能顯示一部分

nsdictionary *dic = [nsdictionary dictionarywithobjectsandkeys:label.font, @"nsfontattributename", nil];

cgrect frame = [str boundingrectwithsize:cgsizemake(1000, 1000) options:nsstringdrawinguseslinefragmentorigin attributes:dic context:nil];

frame.origin.x = view.frame.origin.x + view.frame.size.width + 10;

frame.origin.y = view.frame.origin.y;

label.frame = frame;

//第三種:比第二種顯示得更少一些

nsattributedstring*attrstr = [[nsattributedstringalloc] initwithstring:label.text];

label.attributedtext = attrstr;

nsrange range = nsmakerange(0, attrstr.length);

//獲取該段attributedstring的屬性字典

nsdictionary*dic = [attrstr attributesatindex:

0effectiverange:&range];

//計算文字的大小

cgsizetextsize = [label.textboundingrectwithsize:label.bounds.sizeoptions:nsstringdrawinguseslinefragmentoriginattributes:dic context:

nil].size;

label.frame = cgrectmake(view.frame.origin.x + view.frame.size.width + 10, view.frame.origin.y, textsize.width, textsize.height);

//第四種:算高

nsdictionary*dic = @;

cgrect rect = [self.evaldetail.descp boundingrectwithsize:cgsizemake(width - 20, 10000) options:nsstringdrawinguseslinefragmentorigin attributes:dic context:nil];

label自適應寬度

效果圖 後乙個文字是前乙個文字的後面 self namelb uilabel alloc init self namelb numberoflines 0 self namelb backgroundcolor uicolor redcolor self view addsubview self n...

讓Label的自適應文字,自動調整的高度

ios開發,在使用label過程中我們發現label有乙個numberoflines 的屬性,這用於設定label的行數。但在開發過程中,label中的內容有時是動態的,下面的 能夠實現label自動適應文字資訊,調整自己的行數。前提是label的寬度固定。uilabel label uilabel...

iOS 文字滾動的Label

在我們開發的過程中會遇到文字的長度大於label的寬度的情況,有三種處理方式 1 顯示不下的內容用 來代替 缺點 沒法顯示全內容 2 採取折行的方式 缺點 高度沒法確定,會影響其他內容的顯示 3 讓文字在label中滾動顯示,這種方式既節省了空間,又可以讓使用者看到所有的內容 其中方式3又可以有兩種...