簡體   English   中英

截斷UILabel中的部分文本

[英]Truncate part of text in UILabel

我的要求是我需要在標簽中顯示文本,如果文本的長度太大而無法容納在一行中,我需要在最后以最后幾個字符(通常是最后幾個字符)截斷它一個數字b / w 1-1000所以文本長度可能會有所不同。)是可見的,其前面的文本被截斷為“...”。

所以文字看起來像“abcdefgijk ... 10”

有什么辦法可以實現嗎?

UILabel *contentLabel = [[UILabel alloc]initWithFrame:CGRectMake(50,100, 150, 30)];
contentLabel.text = @"abcdefghijklmnopqrstuvwxyz10";
contentLabel.lineBreakMode = NSLineBreakByTruncatingMiddle;

將此標簽添加到您的顯示器。 你應該得到這樣的輸出

abcdefghijklmnopq...10

對於每個尋找更新解決方案的人來說,swift 3:

yourLabel.lineBreakMode = .byTruncatingMiddle;

斯威夫特4:

有人像我一樣遇到這個問題,

你需要設置label.numberOfLines = 1

如果你將它設置為0,它將在空格處截斷。

所以你的代碼應該是這樣的

    label.numberOfLines = 1
    label.lineBreakMode = .byTruncatingTail
    label.adjustsFontSizeToFitWidth = false

嘗試這個:

 label.lineBreakMode = NSLineBreakByTruncatingMiddle;

從iOS 6.0不推薦使用UILineBreakModeMiddleTruncation

在故事板中

  1. 選擇要截斷字符的標簽。

  2. 選擇“屬性檢查器”。

  3. 在標簽屬性下。 你可以找到Line Break

在此輸入圖像描述

完成。

NSString類中有很多方法使用-length然后使用其中任何一個

– substringFromIndex:
– substringWithRange:
– substringToIndex:

使用NSString stringwithFormat創建一個臨時字符串,將你從substringTo索引得到的所需字符和“.....”從字符串by substringFromIndex得到你想要的字符串。

希望這可以幫助

您可以從找到可以放在一行中的字符長度開始,比如'n'字符。 您可以借助此鏈接來確定'n' 如何知道NSString是否適合UILabel以及最后一個適合的字符串的索引? 接下來,找到字符串的長度。 如果它超過n,則提取最后兩個字符。 防爆

NSString * fooString = @"a very long string";
NSString * s2 = [fooString substringWithRange:NSMakeRange([fooString length]-3, 2)];
NSString * s1 = [fooString substringWithRange:NSMakeRange(0 , n-5)];
NSString * newString = [NSString stringWithFormat:@"%@...%@",s1,s2];

我們為UILabel提供了不同的換行模式

截斷頭部,截斷中部,截斷尾部

在Xib中,您可以根據需要設置換行模式

如果您使用XIB文件..

選擇 - > UILable並選擇 - >屬性檢查器標簽並更改為換行符 - >截斷尾部

簡單地截斷字符的方法......

以下是如何使用它, NSLineBreakByTruncatingMiddle

UILabel *temp = [[UILabel alloc]initWithFrame:CGRectMake(5,75, 100, 50)];
[temp setBackgroundColor:[UIColor lightGrayColor]];
temp.lineBreakMode = NSLineBreakByTruncatingMiddle;
temp.text = @"HelloBoss997";

輸出: Hello...s997

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM