2013-03-15 75 views
5

我想在UILabel中顯示前500個字符,並且如果有超過500個字符可用,則顯示截斷圖標。但是我不知道如何將500個字符限制爲截斷文本?將UILabel限制爲500個字符並截斷IOS中的UIlab

這裏是我的代碼

label2 = [[UILabel alloc] initWithFrame:CGRectMake(0, 350, self.bounds.size.width, 30)]; 
    // In this case value of self.bounds.size.width is "427" 

    label2.backgroundColor = [UIColor clearColor]; 
    label2.numberOfLines = 2; 
    label2.textAlignment = UITextAlignmentCenter; 
    label2.font = [UIFont systemFontOfSize:13]; 
    [self addSubview:label2] 

     //Here is Implimentation code of my label 

NSString *temp = [galleryEntryTree objectForKey:@"description"];// calling lebel text from database 
coverView.label2.text = temp; 
coverView.label2.adjustsFontSizeToFitWidth = NO; 
coverView.label2.lineBreakMode = UILineBreakModeTailTruncation; 

只要告訴我,大家好我怎麼能顯示分鐘500字,比截斷它(若超過500)

任何幫助表示讚賞

+0

coverView.label2.lineBreakMode = UILineBreakModeWordWrap;並調整你的身高或動態增加身高。 – 2013-03-15 09:30:42

+0

您可以嘗試使用NSMutableString並在設置label.text前截斷文本。 – jcesarmobile 2013-03-15 09:30:45

+0

yourLabel.text.length在if中使用此字符串,然後使用stringbyappendingstring或stringwithformat – amar 2013-03-15 09:31:00

回答

12

只是截斷字符串,如果它超過500個字符。唯一需要注意:一定要在surrogate pair中間沒有打破它:

NSString *temp = [galleryEntryTree objectForKey:@"description"]; 
if ([temp length] > 500) { 
    NSRange range = [temp rangeOfComposedCharacterSequencesForRange:(NSRange){0, 500}]; 
    temp = [temp substringWithRange:range]; 
    temp = [temp stringByAppendingString:@" …"]; 
} 
coverView.label2.text = temp; 
4

要顯示只有500個字符只使用下面的代碼:

NSString *string = YOUR_TEXT; 
if ([string length] >500) { 
    string = [string substringToIndex:500]; 
} 

希望這會幫助你。

所有最好的!

+2

切勿在不確保不破壞代理對的情況下拆分字符串。 – 2013-03-15 09:58:46

0

它可以通過

NSString *LabelNewText = [YourLabelName.text substringToIndex:500]; 

這裏500或少於500個字符來簡單地完成將被顯示,超過了所有的角色會被截斷。

NSString * string = LabelNewText.text;

if ([string length] >500) 
{ 
    string = [string substringToIndex:500];          
} 
+1

如果文本的長度低於500,則會崩潰。 – 2013-03-15 09:49:19

+0

您可以通過NSString * string = LabelNewText.text檢查字符串的長度。如果([字符串長度]> 500) string = [string substringToIndex:500]; } – 2013-03-15 09:52:49

1

試試這個,它可以幫助你。

label2 = [[UILabel alloc] initWithFrame:CGRectMake(0, 350, self.bounds.size.width, 30)]; 
    // In this case value of self.bounds.size.width is "427" 
[email protected]"your text................................"; 
if([label2.text length]>500) 
     label2.text=[label2.text substringToIndex:500]; 


    label2.backgroundColor = [UIColor clearColor]; 
    label2.numberOfLines = 2; 
    label2.textAlignment = UITextAlignmentCenter; 
    label2.font = [UIFont systemFontOfSize:13]; 
    [self addSubview:label2] 
2

這裏是如何做到這一點的雨燕2.2:

let maxLength = 500 
if originalString.characters.count > maxLength { 
    let range = originalString.rangeOfComposedCharacterSequencesForRange(Range<String.Index>(originalString.startIndex ..< originalString.startIndex.advancedBy(maxLength))) 
    let tmpValue = originalString.substringWithRange(range).stringByAppendingString(" …") 
    // use tmpValue 
} 
0

雨燕3.0的版本

let maxLength = 300 //char length 
if originalString.characters.count > maxLength { 
      let range = originalString.rangeOfComposedCharacterSequences(for: originalString.startIndex..<originalString.index(originalString.startIndex, offsetBy: maxLength)) 
      let tmpValue = originalString.substring(with: range).appending("...") 
     }