2014-03-13 60 views
1

我有一個UILabel,其中包含一些文本大於UILabel的大小。我不想改變UILabel size我只想要一條線。所以我的問題是我如何跳過(刪除)從尾部導致UILabel截尾的文本?計算截斷UILabel的文本的一部分

回答

0

使用此行來設置您的UILabel的換行模式:

self.lineBreakMode = UILineBreakModeWordWrap 
1

恐怕沒有一個直接的方法來計算。但是,您可以使用boundingRectWithSize:options:attributes獲取文本的大小或邊界:您可以使用二分搜索算法進行迭代,並找到要切斷的字符串位置。

0

試試這個吧,

我想你是要求字符包裝技巧。

首先嚐試在廈門國際銀行

yourLabel.numberOfLines = 1; 

    yourLabel.lineBreakMode = NSLineBreakByCharWrapping; 

    //or 

    yourLabel.lineBreakMode = NSLineBreakByClipping; 
0

我最近做的UITableView的細胞類似的事情。這種方法非常靈活,您可以根據您可用的高度設置任意數量的線。其他一切都會被截斷。檢查出來:

CGSize maxNameLabelSize = CGSizeMake(350,60); //setting height, you can limit it to one line depending on the font 
UILabel *eventName = (UILabel*) ([activityCell.contentView viewWithTag:EVENT_TITLE]); 
//Set value here 
eventName.text = event.name; 

CGSize expectedNameLabelSize = [eventName.text sizeWithFont:eventName.font constrainedToSize:maxNameLabelSize lineBreakMode:eventName.lineBreakMode]; 
CGRect newNameFrame = eventName.frame; 
newNameFrame.size.height = expectedNameLabelSize.height; 
eventName.frame = newNameFrame; 

它有道理嗎?