2013-03-15 71 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("...") 
     }