1

UILabelテキストの長さが特定のカウントを超えたら、テキストを .... で表示したいという点で、アプリケーションに配置しました。

テキストが長くなると、デザインの問題が発生するためです。

使用する機能を教えてください。

4

7 に答える 7

5

これを試して

yourLabel.lineBreakMode=UILineBreakModeTailTruncation;

Interface BuilderからUILabelを追加する場合は、直接追加できます。UILabelを選択し、 Attriubtes Inspector => Label section => Line Breaks setTruncateTailのUtilities列で選択します

于 2012-10-09T06:11:22.020 に答える
0

あなたが共有した情報から、私はそれが根本的な原因であるautoshrinkと思いますlinebreakermode。ITは、フォントサイズを縮小して調整する、指定されたフレームのコンテンツを表示しようとするプロパティです。

問題を解決する2つの方法

  • 要件に応じてプロパティを調整します
  • ラベルのフレームサイズを大きくします(サイズを見つけることによってプログラムで)
  • エッジのはめ込みも見てください
于 2012-10-09T06:11:31.330 に答える
0

UILableサイズ(長さ/幅)を動的にすることができます。

または

UITextView編集を無効にすると、長いテキストがある場合はスクロール可能になります。

于 2012-10-09T06:10:19.580 に答える
0

これは UILabel のカテゴリのメソッドです

-(void)setTruncatedTextWithDotsIfNeeded:(NSString *)text
    {
        float fullTextWidth = [text sizeWithFont:self.font].width;
        float labelWidth = self.frame.size.width;
        if(fullTextWidth<=labelWidth){
            [self setText:text];
            return;
        }
        NSString *dots = @"…";
        float dotsWidth = [dots sizeWithFont:self.font].width;
        NSRange fullRange = [text rangeOfString:text];
        for(int i = fullRange.length; i >= fullRange.location; i--){
            NSRange currentRange;
            currentRange.location = 0;
            currentRange.length = i;
            NSString *partialText = [text substringWithRange:currentRange];
            float partialTextWidth = [partialText sizeWithFont:self.font].width;
            if(partialTextWidth + dotsWidth <= labelWidth){
                [self setText:[NSString stringWithFormat:@"%@...",partialText]];
                return;
            }
        }
    }
于 2012-10-09T06:55:09.887 に答える