[英]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
。
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.