[self.view addSubview:({
//描述
UILabel * descriptionL = [[UILabel alloc]initWithFrame:CGRectMake(30,340,150,50)];
descriptionL.numberOfLines = 3;
descriptionL.attributedText = [self attributedStringWithText:@"貼心在線,省心調(diào)解;上門代收索賠資料,由5000元升級到萬元;免勘現(xiàn)場、無憂定損單證簡化。官方微信"];
descriptionL.font = [UIFont systemFontOfSize:10];
descriptionL.lineBreakMode = NSLineBreakByTruncatingMiddle;
descriptionL;
})];
lineBreakMode三個屬性都是用于截斷最后一行文本的。
例子中,label有三行,無論lineBreakMode是head,meddle或tail,都是截斷第三行的文本。lineBreakMode必須放在attributedText下面。否則不起作用:
API的解釋:
用于包裝和截斷標簽文本的技術(shù)。
如果不使用樣式文本,則此屬性應用于text屬性中的整個文本字符串。
如果使用的是樣式文本,則為此屬性分配一個新值以使lineBreakMode應用于屬性文本屬性中的整個字符串。
如果要將lineBreakMode應用于文本的一部分,請使用所需的樣式信息創(chuàng)建一個新的屬性字符串,并將其與標簽關(guān)聯(lián)。
但是,NSParagraphStyle屬性(如由NSLineBreakMode定義的那些屬性)適用于整個段落(如為paragraphRangeForRange定義),而不是段落內(nèi)的單詞。
此屬性在正常繪圖期間以及必須縮小字體大小以適應邊界框中的標簽文本的情況下均有效。
該屬性默認設(shè)置為NSLineBreakByTruncatingTail。