5

UILabel に最初の 500 文字を表示し、500 文字を超える場合は切り捨てアイコンを表示したいのですが、テキストを切り捨てるために 500 文字を制限する方法がわかりません。

これが私のコードです

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文字を超える場合)

どんな助けでも大歓迎です

4

6 に答える 6

12

500 文字を超える場合は、文字列を切り捨ててください。唯一の注意点:サロゲートペアの途中でそれを壊さないようにしてください:

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;
于 2013-03-15T09:47:02.373 に答える
4

500 文字のみを表示するには、以下のコードを使用します。

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

これがあなたを助けることを願っています。

ではごきげんよう !!!

于 2013-03-15T09:34:09.673 に答える
2

Swift 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
}
于 2016-04-07T17:52:57.163 に答える
1

これを試してみてください。

label2 = [[UILabel alloc] initWithFrame:CGRectMake(0, 350, self.bounds.size.width, 30)];
   // In this case value of self.bounds.size.width is "427"
 label2.text=@"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]
于 2013-03-15T09:38:37.647 に答える
0

それは簡単に行うことができます

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

ここでは、500文字または500文字未満が表示され、それを超えるすべての文字が切り捨てられます。

NSString * string = LabelNewText.text;

if ([string length] >500)
{
   string = [string substringToIndex:500];                                       
}
于 2013-03-15T09:35:23.650 に答える
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("...")
        }
于 2017-01-05T10:58:45.883 に答える